MySQL优化
1. 从架构层面上
1. 主从集群(主主集群)
单个数据库容易宕机,搭建主从集群可以缓解数据存储及访问的压力以及维持高可用
2. 读写分离
对于读多写少的场景,当读的请求远远高于写请求时,可以将读请求由从服务来分担
3. 分库分表
分库: 减小数据库受到的压力
分表: 提高大数据量表的处理能力
2. 从配置文件上
1. 修改my.cnf文件
修改最大连接数等
2. 开启binlog日志
binlog 日志实现主从同步,数据恢复。
主服务上开启binlog日志记录操作,同时从服务上IO进程进行连接,从而写入从库
3. SQL语句优化
1. 对于慢SQL开启慢查询日志
2. Explain查看执行计划
主要关注 id type key rows extra 等列
3. SQL语句优化
1、 让查询走索引 (可以去了解索引失效)
2. groub by 和 order by
3. in 和 exist
4. 分页查询优化 (对于主键不连续情况)
Explain select * from employees a
inner join
(select id from exployees order by name limit 10000,10) b
on
a.id = b.id
5. 对于查询数据表总行数
count(主键) :遍历整张表,需要取ID,判断 id !=null,按行累加;
count(1) : 遍历整张表,【不需要】取值,返回的每一行放一个数字1,
按行累加.从效率上讲count(主键)是低于count(1)的
select count(1) from employees;
select count(id) from employees;
select count(*) from employees
可以使用Redis进行计数