无论在工作中,还是在面试当中,数据库优化是一个避不开的技术点,关于数据库的优化,有如下几点:
(1)优化表结构,对常用的字段和非常用的字段分开存储;
(2)优化SQL,合理使用索引;
(3)做数据库读写分离,减少IO压力,由于数据库对记录做了持久化至磁盘,对磁盘的IO是非常消耗性能的;
(4)使用缓存技术,不让所有的数据请求都打到数据库上;
(5)对业务做垂直拆分,减少耦合度;
(6)对标做水平拆分,这一步是比较复杂,要注意主键生成原则和请求路由规则。
一般可以通过Explain查询检索的Rows的记录量来衡量查询速度;
但是把索引建立在有大量重复数据的字段上,并不能有效地提升SQL效率;
发现没有用到索引,这是对索引列使用like的限制,要对索引列使用like,通配符只能在结尾,开头不可以有任何的通配符;
在索引列上使用MySQL函数也会导致索引失效
(1)使用LIKE关键字的查询语句
在使用LIKE关键字进行查询的查询语句中,如果匹配字符串的第一个字符为"%",索引不会起作用,只有"%"不在第一个位置,索引才会起作用
(2)使用多列索引的查询语句
MySQL可以为多个字段创建索引,一个索引可以包含16个字段,对于多列索引,只有查询条件中使用了这些字段中第一个字段时,索引才会被使用
(3)使用OR关键字的查询语句
查询语句的查询条件中只有OR关键字,且OR前后两个条件都是索引时,查询才会使用索引,否则,查询将不使用索引
原文:https://www.cnblogs.com/Chi-Sophia/p/10198207.html