MySQL方法来查看、创建和删除索引
本文演示了MySQL查看、创建和删除索引的方法:1。指数函数
在索引列中,除了上述排序查找之外,数据库还可以通过使用各种快速定位技术大大提高查询效率,特别是当数据量很大且查询涉及多个表时,索引的使用通常可以加快查询速度的数千倍。
例如,有3个索引表,T1、T2和T3,只包含列C1、C2和C3。每个表包含1000行数据,分别表示1~1000个值。
从T1、T2、T3中选择C1、C2、C3,其中C1=C2和C1=C3
这个查询的结果应该是1000行,每行包含3个相等的值。如果没有索引处理这个查询,你必须找到3个表的所有组合来获得与WHERE子句相匹配的行。可能的组合数是1000×1000×1000(十亿),很明显,查询将非常慢。
如果每个表都被索引,那么查询过程可以大大加快。
(1)从表t1中选择第一行以查看该行中包含的数据。
(2)使用表T2上的索引来直接定位与T2中的t1值匹配的行。同样,使用表T3的索引,直接从T1中匹配T3值的直线位于。
(3)扫描表T1的下一行,重复前面的过程,直到T1中的所有行被遍历。
在这种情况下,仍然在表t1上执行完整的扫描,但它可以在表T2和T3上查找索引,并直接从这些表中提取行,这比未使用的索引快一百万倍。
使用索引,MySQL加速了WHERE子句满足条件行的搜索,而当多表连接查询时,它在执行连接时加快了与其他表中的行的匹配速度。
2。创建一个索引
可以在创建表语句执行时创建索引,也可以将表与创建索引或更改表分别添加到表中。
1.alter表
用于创建普通索引、惟一索引或主键索引。
修改表table_name添加索引index_name(column_list)
修改表table_name添加独特的(column_list)
修改表table_name添加主键(column_list)
的table_name是增加索引的表的名称,和column_list指出列的索引和列由柱间逗号分开。索引名称,index_name,是可选的,在默认情况下,MySQL将被给予一个名字以第一个索引列。此外,修改表允许多个表是在一个语句中改变,那么多指标可以同时创建。
2.create指数
创建索引可以将常用索引或唯一索引添加到表中。
创建table_name指数index_name(column_list)
创建唯一索引index_name table_name(column_list)
table_name,index_name,和column_list具有相同的含义,在ALTER TABLE语句,和索引的名称是不可选的。此外,CREATE INDEX语句不能用于创建一个主键索引。
三.指数型
当创建索引时,可以指定一个索引可以包含重复值。如果不包括,索引应该创建一个主键或唯一索引。对于单柱的唯一指标,这保证了一列不包含重复的值。对于多柱的唯一指标,多元价值观的结合是保证下不为例。
主键索引与惟一索引非常相似,实际上主键索引是一个唯一的索引,名称为主键,这表明一个表只能包含一个主键,因为在表中不可能有两个相同名称的索引。
下面的SQL语句将一个主键索引添加到SID上的学生表中。
复制代码如下:更改表学生添加主键(SID)
4。删除索引
删除表或下拉索引语句可用于删除索引。类似于创建索引语句,下拉索引可以作为表中的语句处理,其语法如下所示。
在talbe_name下降指数index_name
修改表的索引index_name table_name
修改表的主键table_name滴
其中,第一个陈述是等价的,在table_name删除索引index_name。
只有删除主键索引时才使用第三语句,因为一个表可能只有主键索引,因此不需要指定索引名称。如果主键索引没有被创建,但是表有一个或多个惟一索引,MySQL将删除第一个惟一索引。
如果从表中删除一列,则索引将受到影响。对于多列组合的索引,如果删除一列,则该列也会从索引中删除。如果删除所有组成索引的列,则整个索引将被删除。
5。索引视图
MySQL >显示指数从tblname;
MySQL >显示键tblname;
表
表的名称。
non_unique
如果索引不包含重复的单词,则为0。如果可以,则为1。
key_name
索引名称。
seq_in_index
索引中列的序列号从1开始。
column_name
列名称。
整理
列存储在索引中。在MySQL中,有一个值为a(升序)或NULL(没有分类)。
基数
索引中唯一值的数量的估计值,它可以通过运行分析表或myisamchk -a.the基数数据存储为整数的统计更新,所以即使是小桌子,价值不需要准确。更大的基数,更大的机会为MySQL的使用当它是统一的指标。
sub_part
如果列只是部分索引,则是索引的字符数。如果整列被索引,则为空。
拥挤的
指示关键字是如何压缩的。如果未压缩,则为空。
无效的
如果列包含null,则包含是。如果不是,则列包含否。
index_type
用指数法(B树,全文索引,散列,)。
评论
希望本文能对大家设计mysql数据库程序有所帮助。