博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
02索引设计规范
阅读量:2004 次
发布时间:2019-04-28

本文共 504 字,大约阅读时间需要 1 分钟。

限制每张表上的索引数量,建议单张表索引不超过5个

索引并不是越多越好!索引可以提高效率同样可以降低效率
禁止给表中的每一列都建立单独的索引
 

Innodb是按照哪个索引的顺序来组织表的呢?

答案是:主键
 

每个Innodb表必须有一个主键

不使用更新频繁的列作为主键,不使用多列主键
不使用UUID , MD5 , HASH,字符串列作为主键
主键建议选择使用自增ID值
 

常见索引列建议

SELECT、UPDATE、 DELETE语句的WHERE从句中的列
包含在ORDER BY、GROUP BY、DISTINCT中的字段
多表JOIN的关联列
 

如何选择索引列的顺序

区分度最高的列放在联合索引的最左侧
尽量把字段长度小的列放在联合索引的最左侧
使用最频繁的列放到联合索引的左侧

对于频繁的查询优先考虑使用覆盖索引

覆盖索引:就是包含了所有查询字段的索引
避免Innodb表进行索引的=次查找
可以把随机IO变为顺序I0加快查询效率
 

尽量避免使用外键

不建议使用外键约束,但- -定在表与表之间的关联键上建立索引
外键可用3 F保证数据的参照完整性,但建议在业务端实现
外键会影响父表和子表的写操作从而降低性能
 

 

 

 

 

 

 

 

 

 

转载地址:http://oattf.baihongyu.com/

你可能感兴趣的文章
数据结构中的堆栈和内存中的堆栈【转】
查看>>
区别数据结构中的堆栈与内存中的堆栈的个人总结【转】
查看>>
内存中的堆栈和数据结构堆栈区别【转】
查看>>
alloca,calloc,malloc,free,realloc,sbrk【转】
查看>>
什么时候用堆,什么时候用栈?【转】
查看>>
深入分析C++中char * 和char []的区别【转】
查看>>
C/C++内存分配【转】
查看>>
单链表是否有环及环入口点【转】
查看>>
五、判断单链表是否有环,并找到环的入口点
查看>>
内存,堆栈,到底为何物?【转】
查看>>
六、判断两个单向链表是否相交
查看>>
七、两个有序链表合并(递归方式)
查看>>
C++拷贝构造函数(深拷贝,浅拷贝)【转】
查看>>
C++ 内联函数 (讲解的TM真好)【转】
查看>>
什么时候需要定义拷贝构造函数【转】
查看>>
c++类的构造函数详解【转】
查看>>
C++中判断数据类型的函数【转】
查看>>
const在函数前与函数后的区别【转】
查看>>
C++中的mutable关键字【转】
查看>>
一张图总结Google C++编程规范(Google C++ Style Guide)【转】
查看>>