mysql数据库优化的目的
一 避免网页访问错误
1数据库连接timeout产生页面5xx错误
2慢查询造成页面无法加载
3阻塞造成数据无法提交
二 增加数据库的稳定性
三 优化用户体验
1流畅的页面访问速度
2良好的网站功能体验
几个优化方面
硬件-系统配置-数据库表结构-SQL及索引
1成本:高--------------->--------------->低
2效果:低---------------->-------------->高
优化方面
一 SQL语句优化
1 SQL及索引优化
如何发现有问题的SQL?
使用MySQL慢查询日志对有效率问题的SQL进行监控
下面语句可以开启慢查询日志:
show variables like 'slow_query_log' 查看这个是否开启慢查询日志
set global slow_query_log_file ='/home/mysql/sql_log/mysql-slow.log' 慢查询日志存储的文件位置在哪里
set global log_queries_not_using_indexs=on 指定是否要把没有使用索引的SQL,记录到慢查询的日志中
set global long_query_time =1 指定一个时间,超过这个时间如1s之后,查询记录到查询日志中
慢查询日志包含的内容
1 执行sql的主机信息
2 SQL执行的信息
3 SQL执行的时间
4 SQL执行的内容
MySQL慢查询日志
工具一
mysqlsla---mysqldumpslow 输出
工具二
pt-query-digest
如何分析SQL语句
使用explain查询SQL的执行计划 如explain select username from user;
Count()和Max()优化
建立索引后