mysql:索引基本知识

一、索引的优点

        1、减少不必要数据的扫描;

        2、帮助服务器避免排序和临时表

        3、将随机io变成顺序io

二、索引的用处

        1、快速查找匹配WHERE子句的行;

         2、在多个索引之间进行选择,mysql通常会使用找到最少行的索引(虽然可以创建多个索引,但是mysql只会选择其中一个,这也就解释组合索引出现);

         3、在使用组合索引时,mysql优化器可以使用索引的任何最左前缀来查找行,也就是最左匹配原则;

         4、当有表连接的时候,从其他表检索行数据

         5、查找特定索引列的min或max值

         6、如果排序或分组时在可用索引的最左前缀上完成的,则对表进行排序和分组,也就是覆盖索引;

         7、在某些情况下,可以优化查询以检索值而无需查询数据行 

三、索引分类

         1、主键索引   ALTER TABLE tbl_name ADD PRIMARY KEY (column_list)  该语句添加一个主键,这意味着索引值必须是           唯一的,且不能为NULL。

         2、唯一索引   ALTER TABLE tbl_name ADD UNIQUE index_name (column_list):创建索引的值必须是唯一的(除了                 NULL外,NULL可能会出现多次)

         3、普通索引   ALTER TABLE tbl_name ADD INDEX index_name (column_list): 添加普通索引,索引值可出现多次。

         4、全文索引   ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):该语句指定了索引为 FULLTEXT ,用            于全文索引

         5、组合索引   ALTER TABLE tbl_name ADD INDEX index_name (column_list1,column_list2)

四、索引的匹配方式

         1、全值匹配:与索引值进行一一匹配;

         2、匹配最左前缀:只匹配前面的几列;

         3、匹配列前缀:可以匹配某一列的值的开头部分,索引可以只存储数据的前部分信息;

         4、匹配范围值:可以查找某一个范围的数据;

         5、精确匹配某一列并范围匹配另外一列:可以查询第一列的全部和第二列的部分;

         6、只访问索引的查询:查询的时候只需要访问索引,不需要访问数据行,本质上就是覆盖索引;

显示索引信息: mysql> SHOW INDEX FROM table_name; \G
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值