Mysql性能下降原因
JOIN连接过多 ,索引失效(单值,复合), 查询SQL过水,
explian 语法分析SQL性能
https://blog.csdn.net/b1303110335/article/details/51174540
索引是什么?
是一个排好序的快速查找数据结构, 可以快速的定位数据位置,有比如二分查找算法,层次算法等等..
索引优势是什么?
提高数据检索速度,降低IO成本, 数据排序成本,降低CPU消耗
索引劣势是什么?
索引保存了主键和索引字段,指向实体类的记录, 所以占用空间, 每次执行写操作到记录,索引就会调整.. 有大量数据的时候,需要长时间研究最优索引(跟随业务变更)
索引分类?
单值 : 单独一个列
唯一: 列值唯一,可以为空
复合:一个索引多个列, (建议一张表的索引不超过5个)
索引结构?
BTree索引, Hash索引, full-text全文索引, RTree索引
BTree原理: 根据索引值,确定索引的区块,3层的Btree可以表示上百W的数据,只需3次IO,
索引的适合场景?
主键自动唯一索引, 频繁查找,有和其他表存在外键关系, 统计和分组字,
索引的不适合场景?
频繁更新的字段不需要建立索引,
某个字段有很多重复值,不需要建立. 计算方式为