文章 MySQL性能优化
Post
Cancel

MySQL性能优化

数据库优化的目的

避免出现页面访问错误

  • 由于数据库连接timeout阐述页面5xx错误
  • 由于慢查询造成页面无法加载
  • 由于阻塞造成数据无法提交

增加数据库的稳定性

  • 很多数据库问题都是由于低效的查询引起的

优化用户体验

  • 流畅页面的访问速度
  • 良好的网站功能体验

可以从几个方面进行数据库优化

mysql数据库优化

优化无非是从三个角度入手:

  • 第一个是从硬件,增加硬件,增加服务器
  • 第二个就是对我们的MySQL服务器进行优化,增加缓存大小,开多端口,读写分离
  • 第三个就是我们的应用优化,建立索引,优化SQL查询语句,建立缓存等等

MySQL服务器硬件和OS(操作系统)调优:

  • TODO…

MySQL 系统配置:

  • 开启查询缓存

MySQL 表结构优化:

  • 选择合适的存储引擎
  • 在数据列上加上索引(不要过度使用索引,评估你的查询)
  • 有节制的使用触发器
  • 注意你的数据类型,尽可能的使用最小的

SQL查询及索引优化:

  • 使用慢查询日志slow-log,找出执行慢的查询
  • 使用 EXPLAIN 来决定查询功能是否合适
  • 避免在整个表上使用count(*) ,它可能会将整个表锁住,最好 count一个字段,比如count(id),或者count(1)
  • 最小化你要查询的数据,只获取你需要的数据,通常来说不要使用 *
  • 当只要一行数据时使用LIMIT1
  • 避免使用 ORDER BY RAND()
  • 这些操作都是比较耗资源的DISTINCT、COUNT、GROUP BY、各种MySQL函数。
  • 合理的建立索引,为搜索字段建索引,在 WHERE、GROUP BY 和 ORDER BY 的列上加上索引
  • 在Join表的时候使用相当类型的例,并将其索引
  • 保证索引简单,不要在同一列上加多个索引
  • 使用索引字段和 ORDER BY 来代替 MAX
  • 当服务器的负载增加时,使用SHOW PROCESSLIST来查看慢的/有问题的查询。
This post is licensed under CC BY 4.0 by the author.

阮一峰:Git 使用规范流程

大话PHP设计模式笔记