mysql 索引的建立原则
来源:互联网 发布:200元左右的礼品 知乎 编辑:程序博客网 时间:2024/06/05 03:37
1、索引分四类:index ---- 普通索引,数据可以重复fulltext ---- 全文索引,用来对大表的文本域(char,varchar,text)进行索引unique ---- 唯一索引,要求所有记录都唯一primary key ---- 主键索引,也就是在唯一索引的基础上相应的列必须为主键
2、使用索引需注意:(1). 只对 where 和order by 需要查询的字段设置索引,避免无意义的硬盘开销;(2). 组合索引支持前缀索引;(3). 更新表的时候,如增删记录,MySQL会自动更新索引,保持树的平衡;因此更多的索引意味着更多的维护成本
3、索引建立原则 (1). 尽量减少like,但不是绝对不可用,”xxxx%” 是可以用到索引的 (2). 表的主键、外键必须有索引 (3). 谁的区分度更高(同值的最少),谁建索引,区分度的公式是count(distinct(字段))/count(*) (4). 单表数据太少,不适合建索引 (5). where,order by ,group by 等过滤时,后面的字段最好加上索引 (6). 如果既有单字段索引,又有这几个字段上的联合索引,一般可以删除联合索引; (7). 联合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替: (8). 联合索引: mysql 从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index(a,b,c). 可以支持 a|a,b|a,b,c 3种组合进行查找,但不支持 b,c 进行查找.当最左侧字段是常量引用时,索引就十分有效。 (9). 前缀索引: 有时候需要索引很长的字符列,这会让索引变得大且慢。通常可以索引开始的部分字符,这样可以大大节约索引空间,从而提高索引效率。其缺点是不能用于ORDER BY和GROUP BY操作,也不能用于覆盖索引 Covering index(即当索引本身包含查询所需全部数据时,不再访问数据文件本身)。 (10). NULL会导致索引形同虚设
4、禁用索引 - like “ %xxx ” - not in , != - 对列进行函数运算的情况(如 where md5(password) = “xxxx”) - WHERE index=1 OR A=10 - 存了数值的字符串类型字段(如手机号),查询时记得不要丢掉值的引号,否则无法用到该字段相关索引,反之则没关系
0 0
- mysql 建立索引的原则
- MYSQL - 建立索引的原则
- mysql 建立索引的原则
- mysql 建立索引的原则
- mysql 索引的建立原则
- mysql 建立索引的原则
- mysql索引建立原则
- mysql建立索引的几大原则
- 索引建立的原则
- 建立索引的原则
- 建立索引的原则
- 建立索引的原则
- 索引建立的原则
- 索引建立的原则
- 索引建立的原则
- 建立索引的原则
- 建立索引的原则
- 建立索引的原则
- Javascript中的自执行匿名函数
- 插头dp-基于连通性,维护轮廓线的状压dp
- LabVIEW利用公式节点进行数值比较选出最大值
- POJ 3264-Balanced Lineup(RMQ-ST算法)
- grails session 验证 filter
- mysql 索引的建立原则
- 179. Largest Number(unsolved)
- Java 基础:认识&理解关键字 native 实战篇
- SSL 1021——产生数【最短路】【高精度】
- VC++创建快捷方式、删除快捷方式、添加开始菜单程序组菜单
- bash脚本
- Mac下安装php7.0+nginx
- 银行卡校验规则(Luhn算法)
- python学习-03