Mysql之数据库优化

Posted CodeMarker

tags:

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

点击上方蓝字,记得关注我们!


数据库优化的目的:


  • 避免出现页面访问错误:数据库连接timeout出现5xx错误、慢查询造成页面无法加载、阻塞造成数据无法提交

  • 增加数据库的稳定性:很多问题由于数据库的低效查询引起的

  • 优化用户体验:流畅的页面访问速度、良好的网站功能体验。


优化方案:



1.sql及索引的优化


使用慢查询日志,找到有效率问题sql,可借助mysqldumpslow、pt-query-digest慢查询日志分析工具。


对查询较多且查询时间较长的sql、Io大的sql  、未命中索引的sql语句优化。


使用explain查询sql的执行计划,来对sql优化。


索引优化。建合适的索引,where从句、group by从句、order by从句、on从句中出现的字段、联合索引散列度大的字段放前面,去除冗余重复索引,对不使用的索引删除。


2.表结构的优化


选择合适的数据类型:


  • 使用可以存下数据的最小数据类型

  • 使用简单的数据类型。Int比varchar类型在mysql处理上简单

  • 尽可能的使用not  null定义字段

  • 尽量少用text、blog类型,非用不可时考虑分表


表结构设计优化:


  • 范式化和反范式化

  • 表的水平拆分

  • 表的垂直拆分


3.数据库系统配置优化


操作系统配置优化:


  • 增大系统文件打开数

  • 关闭防火墙等


mysql配置文件优化:


  • Mysql配置文件优化:innodb_buffer_pool_size,缓冲池大小

  • innodb_buffer_pool_instance缓冲池个数

  • innodb_read_io_threads读线程个数

  • innodb_write_io_threads写线程个数

  • innodb_file_per_table设置为on,每个表使用独立的表空间


4.服务器硬件优化


  • cpu并不是越多越好,单核频率更快的cpu

  • 磁盘io优化,选择合适的存储磁盘



以上是关于Mysql之数据库优化的主要内容,如果未能解决你的问题,请参考以下文章

Mysql性能优化之参数配置(转)

MySQL 之数据库优化

MySQL 之数据库优化

mysql数据库优化之语句优化

MYSQL数据库性能优化之SQL优化

MySQL 数据库性能优化之SQL优化