不管在工做中,仍是在面试当中,数据库优化是一个避不开的技术点,关于数据库的优化,有以下几点:面试
(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先后两个条件都是索引时,查询才会使用索引,不然,查询将不使用索引