mysql 枚举索引_MySQL 索引总结

1、索引是做什么的?

想象一下,你面前有本词典,数据就是书的正文内容,你就是那个cpu,而索引,则是书的目录

索引用于快速找出在某个列中有一特定值的行。不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行。

表越大,花费的时间越多。如果表中查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要看所有数据。

大多数MySQL索引(PRIMARY KEY、UNIQUE、INDEX和FULLTEXT)在B树中存储。只是空间列类型的索引使用R-树,并且MEMORY表还支持hash索引。

2、索引越多越好?

大多数情况下索引能大幅度提高查询效率,但:

数据的变更(增删改)都需要维护索引,因此更多的索引意味着更多的维护成本更多的索引意味着也需要更多的空间 (一本100页的书,却有50页目录?)过小的表,建索引可能会更慢 (读个2页的宣传手册,你还先去找目录?)

3、索引的字段类型问题

text类型,也可建索引(需指定长度)myisam存储引擎索引键长度综合不能超过1000字节用来筛选的值尽量保持和索引列同样的数据类型

尽量减少like,但不是绝对不可用,"xxxx%" 是可以用到索引的,想象一下,你在看一本成语词典,目录是按成语拼音顺序建立,查询需求是,你想找以 "一"字开头的成语("一%"),和你想找包含一字的成语("%一%")

除了like,以下操作符也可用到索引:,>&

你可能感兴趣的:(mysql,枚举索引)