一、查询性能
SHOW STATUS LIKE ‘Connections‘; #连接次数 SHOW STATUS LIKE ‘Uptime‘; #上线时间 SHOW STATUS LIKE ‘Slow_queries‘; #慢查询次数 SHOW STATUS LIKE ‘Com_select‘; #查询次数 SHOW STATUS LIKE ‘Com_insert‘; #插入次数 SHOW STATUS LIKE ‘Com_update‘; #更新次数 SHOW STATUS LIKE ‘Com_delete‘; #删除次数
二、优化查询
分析查询语句示例。
EXPLAIN SELECT *
FROM mysql.user;
DESCRIBE SELECT *
FROM mysql.user;
三、优化数据库结构
提高查询速度。
- 将字段很多的表分解为多个表,避免使用频率低的字段降低查询速度。
- 增加中间表,提高联表查询的速度。
- 增加冗余字段,尽量减少多表查询。
提高插入速度。
- 禁用索引,避免在索引在插入时进行排序降低插入速度。
- 禁用唯一性检查,避免校检带来的开销。
- 简化插入语句,减少多个插入语句执行时连接数据库带来的开销。
ALTER TABLE student DISABLE KEYS; #禁用索引 ALTER TABLE student ENABLE KEYS; #开启索引 SET UNIQUE_CHECKS = 0; #禁用唯一性检查 SET UNIQUE_CHECKS = 1; #开启唯一性检查
分析、检查和优化表。
ANALYZE TABLE mysql.user; CHECK TABLE mysql.user; OPTIMIZE TABLE mysql.user;
四、优化服务器
通过修改部分数据库参数可以提高服务器性能。部分重要参数如下
key_buffer_size | 索引缓存大小 |
table_cache | 同时打开表的数量 |
query_cache_size | 查询缓存大小 |
query_cache_type | 查询缓存的开启状态 |
max_connections | 最大连接数 |
sort_buffer_size | 排序缓存大小 |
read_buffer_size | 线程缓存大小 |
innodb_buffer_pool_size | InnoDB表和索引的缓存大小 |