mysql 简单优化

连接优化

max_connections  # 最大连接数
innodb_buffer_pool_size # Innodb 数据、索引缓存大小

查询数据库响应的最大连接数 

show global status like 'max_used_connections';

设置 max_connections 让 max_used_connections 为 max_connections 的 80% 左右

innodb_buffer_pool_size 设为物理内存的80%
值越大,则磁盘IO越少,查询的速度就会越快。但是太大了就会影响操作系统的性能。

SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool%'; # 查看具体数值
# 查看读取数和请求数
Innodb_buffer_pool_read_requests
Innodb_buffer_pool_reads
# 保证
Innodb_buffer_pool_reads / Innodb_buffer_pool_read_requests < 0.1%
# 比0.1%大则增加,比 0.01%小则减少 innodb_buffer_pool_size

查询优化

判断唯一标识是否存在的时候,优先使用 count(1)

# 未优化下,17w订单数据测试

SELECT id FROM order WHERE ordersn=123456789          1.344s
SELECT count(id) FROM order WHERE ordersn=123456789   1.261s
SELECT count(1) FROM order WHERE ordersn=123456789    0.128s

评论已关闭。