如何理解MySQL数据库的优化

分区允许根据指定的规则,跨文件系统分配单个表的多个部分。表的不同部分在不同的位置被存储为单独的表。

SQL及索引优化

  如何发现有问题的SQL?

                使用mysql慢查日志对有效率问题的sql进行监控

show variables 

like 'slow_query_log' set global slow_query_log_file = '/home/mysql/sql_log/mysql-show.log' set global log_queries_not_using_indexs = on; set global long_query_time = 1

  慢查日志的存储格式

# Time: 140606 12:30:17

// 执行SQL的主机信息
# User@Host: root[root] @ localhost[]

// SQL的执行信息
# Query_time:0.000031 Lock_time:0.000000 Rows_sent: 0 Rows_examined:0

// SQL 执行时间
SET timestamp = 1402029017

// SQL的内容
select CONCAT('storage engine:',@@storage_engine) as INFO;

慢查日志的分析工具

- mysqldumpslow 

- pt-query-digest 

如何通过慢查询日志发现有问题的SQL?

1. 查询次数多且每次查询占用时间长的SQL

通常为pt-query-digest分析的前几个查询

2.IO大的SQL

注意pt-query-digest分析中的Rows examine项

3.未命中索引的SQL       

注意pt-query-digest分析中Rows examine 和Rows Send对比

相关推荐:

mac使用终端运行mysql,mysql终端,mysql mac,mysql目录,mysql路径,macmysql

Mysql分区|mysql分区表|mysql partition|by range