🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>[info] ## 序言 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 >[info]## 创建索引 ``` //创建索引 CREATE INDEX indexName ON table_name (column_name) //删除索引 DROP INDEX [indexName] ON mytable; //显示索引 SHOW INDEX FROM table_name ``` >[info]## 索引设计 * 限制每张表上的索引数量,建议单张表索引不超过 5 个 * 唯一索引使用uniq_字段名]来命名 * 非唯一索引使用idx_[字段名]来命名 * 单张表索引数量建议控制在5个以内 * 不建议在频繁更新的字段上建立索引 >[info]## 联合索引 * **OR**关系,加索引不起作用 * 符合最**左**原则 * *在建立索引时,多考虑建立联合索引,并把区分度最高的字段放在最前面,应该仔细考虑列的顺序。 ~~~ 联合索引又叫复合索引。 对于复合索引:Mysql从左到右的使用索引中的字段, 一个查询可以只使用索引中的一部份,但只能是最左侧部分。 例如索引是key index (a,b,c). 可以支持**a**|**a,b**|**a,b,c**3种组合进行查找 但不支持 b,c进行查找 .当最左侧字段是常量引用时, 索引就十分有效。 ~~~ *** >[info]## 如何正确的建立数据库表字段索引? 1、索引不是在创建表的时候创建的;系统在运行一个阶段后创建索引。 2、对于主键、外键、排序等字段优先加索引。 3、其它字段在建立索引的时候需要计算字段的区分度,计算SQL如下: ``` select  COUNT(DISTINCT column_name)/COUNT(*) from table_name ```