mysql 优化

79 阅读1分钟

mysql优化的方向

  • 索引
  • 表结构
  • 配置
  • 硬件

索引

  • 索引的合理性

    • 区分度
    • 索引字段大小
    • 索引数量
    • 联合索引
  • 索引的命中情况

    • explain
    • show profiles + show profiling for query

表结构

  • 合适的数据类型
  • 避免数据量过大

配置

  • 1、mysql server的buffer pool

    • 如何查看buffer pool是否太小了
    • show status like '%Innodb_buffer_pool_%'
      Innodb_buffer_pool_read_requests 读请求次数
      Innodb_buffer_pool_reads 从物理磁盘读请求次数

    • buffer pool 命中率 = 1 - (Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100%
      一般低于99%,则需要调整

    • 如何设置buffer pool 大小
    • set global innodb_buffer_pool_size = 536870912;

  • 2、应用程序连接池大小、server最大连接数

  • 3、server 层的query cache,不建议打开了,8.0已经删除了这个功能

硬件

  • mysql server 服务器的cpu、内存等资源