在MySQL中,普通索引,也就是BTREE索引分两类,一个是单列索引 另一个是多列索引
1.索引的作用:
当一个数据表只有很少量的数据时,索引体现不了他的价值。但若是一个表有10w多的数据时,查找数据就要全表查找,最差要查找10w个数据,太慢了,若是用索引的话,就会大大减少时间,例如对 score字段做一个索引,索引会生成一个文件,查找数据就到索引文件中查找,又因为索引出来的数据是已经排好序的,所以查找时,数据库会用类似二分法的查找,这样会比不用索引快很多倍。
2.单列索引和多列索引:
一,单列索引:
单列索引是给单个字段做索引,如给math字段。
alter table zje add index math_index( math ); //作用是给 zje表 中的math字段加一个索引,索引名叫 math_index
用命令 show index from zje;可以查看是否建立了索引:select math from zje ;select math,english from zje ;上面的写法都可以使用多列索引,第一行的写法相当于math的单列索引而select english from zje ;则会使用索引失效,因为他不是math开头删除多列索引跟删除单列索引一样。-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------最后讲回一开始的问题,既然多列索引的表现形式跟多设置几个单列索引没什么不同,那为什么还要有多列索引呢?因为即使设置了多个单列索引,但是数据库在搜索数据时,会挑出一个最严格的索引使用,其二是一个表中,索引是越少越好的
新闻热点
疑难解答