MySQL笔记:性能优化

Posted arseneyao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL笔记:性能优化相关的知识,希望对你有一定的参考价值。

一、查询性能

技术分享图片
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; #删除次数
View Code


二、优化查询

分析查询语句示例。

技术分享图片
EXPLAIN SELECT *
        FROM mysql.user;
DESCRIBE SELECT *
         FROM mysql.user;
View Code

 

三、优化数据库结构

提高查询速度。

  • 将字段很多的表分解为多个表,避免使用频率低的字段降低查询速度。
  • 增加中间表,提高联表查询的速度。
  • 增加冗余字段,尽量减少多表查询。

提高插入速度。

  • 禁用索引,避免在索引在插入时进行排序降低插入速度。
  • 禁用唯一性检查,避免校检带来的开销。
  • 简化插入语句,减少多个插入语句执行时连接数据库带来的开销。
技术分享图片
ALTER TABLE student
  DISABLE KEYS; #禁用索引

ALTER TABLE student
  ENABLE KEYS; #开启索引

SET UNIQUE_CHECKS = 0; #禁用唯一性检查
SET UNIQUE_CHECKS = 1; #开启唯一性检查
View Code

分析、检查和优化表。

技术分享图片
ANALYZE TABLE mysql.user;
CHECK TABLE mysql.user;
OPTIMIZE TABLE mysql.user;
View Code


四、优化服务器

通过修改部分数据库参数可以提高服务器性能。部分重要参数如下

key_buffer_size 索引缓存大小
table_cache 同时打开表的数量 
query_cache_size 查询缓存大小 
query_cache_type 查询缓存的开启状态 
max_connections 最大连接数 
sort_buffer_size 排序缓存大小 
read_buffer_size 线程缓存大小 
innodb_buffer_pool_size InnoDB表和索引的缓存大小 


以上是关于MySQL笔记:性能优化的主要内容,如果未能解决你的问题,请参考以下文章

MySQL笔记:性能优化

MySQL《高性能MySQL》学习笔记,第四章,Schema与数据类型优化

《高性能MySQL》读书笔记

高性能mysql读书笔记:Schema与数据类型优化

Mysql高性能优化笔记(含578页笔记PDF文档),收藏了

Mysql性能优化笔记