0、问题清单
5、优化
1、SQL查询查询优化的步骤(*3)
2、SQL优化;
3、优化MySQL。
6、备份恢复
1、MySQL的容灾备份机制;数据库备份。
2、数据库挂了怎么办?除了热备份还有什么办法?热备份、冷备份。
五、优化
1、SQL查询优化的步骤?(*3)
[1] 使用show status查看数据库运行状况(连接、CURD执行等)。
[2] 慢查询日志+show processlist定位慢SQL
[3] 用explain/desc分析慢SQL并解决。
2、SQL优化。
详细可看移步【数据库】SQL语句优化技巧,主要从索引、表分析、排序等方面入手。
3、优化MySQL
思路:(图参考他人)
【1】、SQL语句及索引优化
a)发现有问题的SQL?
慢查询日志、Explain分析SQL执行计划(!Using file sort & Using temporay)。
b)SQL语句优化
–优化insert语句,一次插入多值;
–避免where自己使用 !=或<>操作符,否则引擎将放弃索引而进行全表扫描;
–尽量避免where字句对字段进行null判断,否则将导致引擎放弃使用索引进行全表扫描;
–优化嵌套查询:子查询可以被更有效率的连接替代;
–很多时候exists代替in是一个好的选择。
【2】、数据库表结构优化
a)合适数据类型;
–选择较小的数据类型解决问题;
–选择简单的数据类型;
–尽可能使用not null定义字段;
–尽量避免使用text类型,非用不可时时最好考虑分表。
b)表范式优化
遵循三大范式。
c)表垂直拆分
–不常用字段单独放在一表;
–大字段独立放入一个表;
–经常用的字段放入一个表。
d)表水平拆分
用于解决数据表中数据过大的问题,水平拆分每一个表的结构完全一致。
数据平分到N张表的常用方法包括以下两种:
–对ID进行hash计算;
–针对不同hashID将数据存入不同表中。
表水平拆分优缺点:
优点:降低查询时需要读的数据和索引页数,同时降低索引层数,提高查询速度;把数据放到多个数据库中,提高系统总体可用性(分库、鸡蛋不能放在同一个篮子里);
缺点:跨分区表的数据查询、统计及后台报表操作等问题。
【3】、系统配置优化
a)操作系统配置:增加TCP支持队列;
b)MySQL配置文件优化:Innodb缓存设置及缓存池个数。
【4】、硬件优化:CPU+内存+磁盘
六、备份恢复
待补充……