MySQL索引

方式

有几种方式,最常见是B树。还有哈希

使用场合

select或update等带有where时都可以,索引帮助where快速过滤。

适合数据类型

MySQL支持很多数据类型,选择合适的数据类型存储数据对性能有很大的影响。通常来说,可以遵循以下一些指导原则:

  1. 越小的数据类型通常更好:越小的数据类型通常在磁盘、内存和CPU缓存中都需要更少的空间,处理起来更快。
  2. 简单的数据类型更好:整型数据比起字符,处理开销更小,因为字符串的比较更复杂。在MySQL中,应该用内置的日期和时间数据类型,而不是用字符串来存储时间;以及用整型数据类型存储IP地址。
  3. 尽量避免NULL:应该指定列为NOT NULL,除非你想存储NULL。在MySQL中,含有空值的列很难进行查询优化,因为它们使得索引、索引的统计信息以及比较运算更加复杂。你应该用0、一个特殊的值或者一个空串代替空值。

匹配

原则:最左匹配。 
如在people表有三个字段,name,age,sex。 
如果建立3个字段的组合索引,实际(name),(name,age),(name,age,sex)都可以索引。 
且可以进行范围匹配,可用like,但注意第一个不要用通配符%。

数据库索引方式选择

如果使用or,则两则都尝试用索引,如果是and,选择限制更强的。 
如果数据较少,直接全表扫描。由于索引本身较大,是存储在磁盘中的。 
多表查询时也可能会用到。

单列和组合索引

数据库选择索引时,只会选择约束力最强的,如果是三个单列索引,只会选择最强的。 
而如果是组合索引(即多个字段建立的),则约束力更强。

注意:

索引建立太多,则每次更新或删除的时候需要更新索引,会慢。

posted on 2017-12-11 11:13  willaty  阅读(170)  评论(0编辑  收藏  举报

导航