一:简介
MySQL性能优化是通过优化各个方面的,不仅仅是优化SQL语句这一方面,而是通过各各方面的优化,每个地方优化一些,这样整体性能就会有明显的提升。

二:优化方式
1. 优化数据库表结构的设计

为什么数据库表的设计会影响性能?

  • 字段的数据类型:不同的数据类型的存储和检索方式不同,对应的性能也不同,所以说要合理的选用字段的数据类型。比如人的年龄用无符号的unsigned tinyint即可,没必要用integer
  • 数据类型的长度:数据库最终要写到磁盘上,所以字段的长度也会影响着磁盘的I/O操作,如果字段的长度很大,那么读取数据也需要更多的I/O, 所以合理的字段长度也能提升数据库的性能。比如用户的手机号11位长度,没必要用255个长度。
  • 表的存储引擎:常用的存储引擎有MyISAM、InnoDB、Memory,不同的存储引擎拥有不同的特性,所以要合理的利用每种存储引擎的长处和优点来提供数据的性能。MyISAM不支持事务,表级锁,但是查询速度快,InnoDB支持事务,行锁。

2. SQL优化
MySQL性能优化的一个很重要的手段就是对SQL语句的优化。其中最重要的方式就是使用索引。

3. 分表
当一个表的数据量很大的时候,查询就变的很慢,所以减少表里的记录的数量是优化的一种方式,这种方式就是将一张表的数据拆分成多张表,这样每张表的数量就减少了,这样查询速度就相对来说就快了一些。

大表对DDL操作有一定的影响,如创建索引,添加字段
修改表结构需要长时间锁表,会造成长时间的主从延迟,影响正常的数据操作

4. 大事务
大事务:运行时间比较长,操作的数据比较多的事务
风险:锁定太多的数据,造成大量的阻塞和锁超时,回滚时所需时间比较长,执行时间长容易造成主从延迟

避免一次处理太多的数据,移除不必要在事务中的select操作

5. 数据库参数配置优化(很重要)
mysql是一个高度定制化的数据库系统,提供了很多配置参数(如最大连接数、数据库占用的内存等),这些参数都有默认值,一般默认值都不是最佳的配置,一般都需要根据应用程序的特性和硬件情况对mysql的配置进行调整。

例如最大连接数默认为100,即使SQL语句优化的再好,硬件设备配置再高,当请求超过100时都要再等待,这就是配置不合理导致MySQL不能发挥它的最大能力。

6. 主从复制,读写分离
一台MySQL服务器同一时间点支持的并发数是有限的,当大量并发(如秒杀活动等,很多用户都同一时刻访问数据库)时,一台数据库处理不过来,所以增加MySQL服务器的数量也是一种增强数据库性能的方式。

通过使用MySQL主从复制,增删改操作走Master主服务器,查询走Slaver从服务器,这样就减少了只有一台MySQL服务器的压力。

7. 增加缓存层
减少数据库连接也是一种优化手段,有些查询可以不用访问数据库,可以通过使用缓存服务器如redis、memcache、elasticsearch等增加缓存,减少数据库的连接

8. 升级服务器硬件
当所有优化手段都用了,性能仍需要优化,那么只有升级MySQL服务器端硬件了,更快的磁盘IO设备,更强的CPU,更大的内存,更大的网卡流量(带宽)等。

总之对MySQL性能的提升,是通过各个方面来提升的,每个方面都提升一点,整体加起来就有明显的提升。

MySQL性能优化(一):优化方式相关推荐

  1. mysql半连接_mysql表的半连接,反连接导致的mysql性能优化剖析

    [导读] 关于Oracle的半连接,反连接,我一直认为这是一个能讲很长时间的话题,所以在我的新书<Oracle DBA工作笔记>中讲性能优化的时候,我花... 关于Oracle的半连接,反 ...

  2. MySQL性能优化、故障排查及最佳实践秘籍,阿里云数据库专家玄惭的“武功”全记录...

    为什么80%的码农都做不了架构师?>>>    文章简介 玄惭,真名罗龙九,阿里云DBA专家,负责阿里云RDS线上稳定以及专家服务团队.他经历过阿里历年双11实战考验,积累了7年对阿 ...

  3. MySQL 性能优化之高阶神技

    一.前言 MySQL调优对于很多程序员而言,都是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰. 在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询 ...

  4. MySQL 性能优化,索引和查询优化

    https://my.oschina.net/qrmc/blog/1822373 要知道为什么使用索引,要知道如何去使用好索引,使自己的查询达到最优性能,需要先了解索引的数据结构和磁盘的存取原理 1. ...

  5. 8核32g mysql性能_MySQL性能优化之参数配置

    1.目的: 通过根据服务器目前状况,修改Mysql的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能. 2.服务器参数: 32G内存.4个CPU,每个CPU 8核. 3.MySQL目 ...

  6. MySQL 性能优化,优化设计及设计原则解读

    MySQL性能优化的目的 如何合理的设计数据库? 什么样的数据库设计才能给后期DBA优化提供基石? 数据库设计与程序设计的差异? 数据库设计早期优化 1. 关系明确(理清表之间的关系,可以通过冗余的方 ...

  7. MySQL性能优化速记

    MySQL性能优化速记http://www.bieryun.com/3064.html 总结自<MySQL 5.7从入门到精通(视频教学版)>刘增杰编著. 优化简介 MySQL数据库优化是 ...

  8. MySQL性能优化之参数配置

    1.目的: 通过根据服务器目前状况,修改MySQL的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能. 2.服务器参数: 32G内存.4个CPU,每个CPU 8核. 3.MySQL目 ...

  9. MySQL 性能优化技巧

    原文地址:MySQL 性能优化技巧 博客地址:www.extlight.com 一.背景 最近公司项目添加新功能,上线后发现有些功能的列表查询时间很久.原因是新功能用到旧功能的接口,而这些旧接口的 S ...

最新文章

  1. PyTorch框架:(4)如何去构建数据
  2. oracle中asm磁盘不足,Oracle用户无法访问ASM磁盘组问题
  3. 结构体实验报告总结_解读!清华、谷歌等10篇强化学习论文总结
  4. nginx优化之请求直接返回json数据
  5. 笔记2014-08-26
  6. 大数据挑战与NoSQL数据库技术pdf
  7. 《人月神话》之外科手术队伍
  8. c语言程序设计订餐系统,C语言订餐系统
  9. 【DA】z检验p值的计算
  10. 2011ACM大赛题目之贪吃蛇算法
  11. 谷歌浏览器字体最小12px
  12. 爱了,这18个 Python 高效编程技巧真香
  13. AI绘画正在取代设计师?答案是这样的
  14. WireShark案例分析
  15. python 翻译模块 翻译API使用(百度、有道、谷歌)
  16. 系列文章深度解读|SwiftUI 背后那些事儿
  17. Centos 7 拨号上网
  18. 程序员崩溃了!年终奖怎么说黄就黄?
  19. 系统延迟任务及定时任务
  20. 挖掘长尾关键词的工具有哪些?

热门文章

  1. zoj 1107 FatMouse and Cheese 逆向动态规划
  2. [CVPR2021 Oral] PREDATOR: Registration of 3D Point Clouds with Low Overlap 损失函数含代码理解
  3. 桌面创建html文件路径,html本地图片路径
  4. [vulfocus漏洞复现]thinkcmf 代码执行漏洞复现 (CVE-2019-7580)phpinfo();ThinkCMF是一款支持Swoole的开源内容管理框架(CMF),基于ThinkPH
  5. 搭载WM系统 索尼爱立信王牌X1真机解析
  6. c语言音像店程序,易时音像店会员管理软件
  7. android 选择文件路径无效,Android使用MediaMetadataRetriever类获取视频帧时一直无法正确读取路径文件,iamge显示位null...
  8. html_blog 84-109
  9. 【真】华为云计算HCIE实验-FCD环境搭建
  10. FDTD学习之FDTD背景简介及mesh