【目录】

  • MySQL(一):MySQL中的事务
  • MySQL(二):MySQL性能优化

【前言】

在对MySQL的事务进行了学习总结之后,继续对MySQL的性能优化进行学习并进行总结,将自己在工作中的性能优化经验以及自己一个实战进行记录,与大家共享;

【那些不得不知的优化技巧】

一、根据自己以往的经历和查阅些相关资料之后对MySQL的优化总结了以下几点:

1、建表注意事项:字段要尽可能少,将不同的字段拆分尽量可以查缓存;

2、SQL语句的优化(比如join联表查询时要先缩小两个表数据范围然后再join);

3、建立索引---索引的分类:唯一索引、主键索引、全局索引;

4、分表分区---分表 纵向分割(将列分到不同的表中) 、横向分割(按行的特性将数据分);

5、主从复制和读写分离;

6、数据库的集群;

二、真实案例

1、场景说明:

需要找到用户最新一笔订单,并且订单为结清状态,并且当前时间在其结清时间的7到15天内一批数据

2、未优化前的sql情况

(1)实现SQL语句

SELECTid,customer_id,repayment_state,final_settle_date
FROM(SELECTid,customer_id,repayment_state,final_settle_dateFROMwf_cr_borrow_orderWHEREid > 0ORDER BYapply_time DESC) AS temp
GROUP BYcustomer_id
ORDER BYid
LIMIT 1000

(2)执行情况(线上MySQL慢日志查看)

MySQLTotalExecutionCounts MySQLTotalExecutionTimes MaxExecutionTime MaxLockTime ParseTotalRowCounts ParseMaxRowCount ReturnTotalRowCounts ReturnMaxRowCount SQLText
761 6214 19 0 2232121035 5919899 761000 1000 select id , customer_id , repayment_state , final_settle_date from ( select id , customer_id , repayment_state , final_settle_date from wf_cr_borrow_order where id > :1 order by apply_time desc ) as temp group by customer_id order by id limit :2

解释:每天需要执行761次,每次最多耗时19秒,总共执行1.7小时;

3、优化后的sql情况

(1)相应的SQL实现

SELECTid,customer_id,repayment_state,final_settle_date
FROMwf_cr_borrow_order
WHEREparam8 = 1
AND apply_time < NOW()
AND id > 0
AND repayment_state IN (2, 5)
AND NOW() BETWEEN date_add(final_settle_date,INTERVAL 7 DAY
)
AND date_add(final_settle_date,INTERVAL 15 DAY
)
ORDER BYid
LIMIT 1000;

(2)执行情况:

只需执行两次,每次执行1.5秒,总共执行3秒;

4、优化前后对比:

优化执行总时长为1.7小时,优化后执行3秒,效率提升2040倍;

【总结】

SQL性能优化是每个程序员必备的技能,掌握这些技巧然后根据业务灵活运用;

想要留住客户,用户体验是很重要的一块儿,性能的体验是用户体验的一个重要的部分。

MySQL(二):MySQL性能优化相关推荐

  1. MySQL模糊查询性能优化

    一.背景 我们经常在数据库中使用 LIKE 操作符来完成对数据的模糊搜索,LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式. 如果需要查找客户表中所有姓氏是"孙"的数据 ...

  2. 高性能Mysql之查询性能优化

    高性能Mysql之查询性能优化 为什么查询速度会慢 慢查询基础:优化数据访问 重构查询的方式 MySQL查询优化器的局限性 优化特定类型的查询 即使我们设计了一个最优的库表结构,建好了最好的索引,如果 ...

  3. mysql isam cache_Mysql性能优化基础篇

    mysql性能优化练习相关优化选项 启用慢查询日志 查看各种系统变量.状态变量 一.性能优化 1.查看服务运行的参数mysql> show variables\G; mysql> show ...

  4. 高性能MySQL(4)——查询性能优化

    査询优化.索引优化.库表结构优化需要齐头并进,一个不落. 一.为什么查询速度为变慢 在尝试编写快速的查询之前,需要清楚一点,真正重要是响应时间.如果把查询看作是一个任务,那么他由一系列子任务组成,每个 ...

  5. MySQL高性能及性能优化技巧---更适合开发人员

    更新次数 更新时间 首发 2021.10.25 第一次更新 2021.10.26 1.删除了书中大量不必要的存储引擎类型 2.摘要完毕Mysql架构与历史部分 第二次更新 2021.10.29 1.摘 ...

  6. MySQL常见的性能优化

    一.MySQL的主要适用场景 1.Web网站系统 2.日志记录系统 3.数据仓库系统 4.嵌入式系统 二.MySQL架构图: 三.MySQL存储引擎概述 1)MyISAM存储引擎 MyISAM存储引擎 ...

  7. MySQL之sql性能优化

    二十种MySQL性能优化 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的.当有很多相同的查询被执行了多次的时候,这 ...

  8. mysql的limit性能优化

    MySQL大数据量分页查询方法及其优化 ---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适 ...

  9. MySQL系列:性能优化

    1. 优化简介 MySQL性能优化包括:查询优化.数据库结构优化.MySQL服务器优化等. 2. 查询优化 2.1 分析查询语句 MySQL提供EXPLAIN和DESCRIBE,用来分析查询语句. E ...

  10. mysql配置以及性能优化(转)

    MySQL配置文件my.cnf中文详解,附mysql性能优化方法分享 ================================================================= ...

最新文章

  1. 0基础学python难吗-零基础入门学习Python技术难不难?
  2. Intellj(IDEA) warning no artifacts configured
  3. uva 1331——Minimax Triangulation
  4. 封送处理您的数据:利用 COM 和 Windows 2000 的高效传输数据的技术
  5. Spring学习9-MyEclipse中Spring工程使用@Resource注释的问题
  6. .NET 中String类功能分类概述
  7. 可视化排班管理_企业人事资源管理系统
  8. 逻辑回归之,sigmoid ,交叉熵
  9. Mybatis_day4_Mybatis的注解开发
  10. VB快速读取 TextBox 第 N 行的资料
  11. [Unity3d][NGUI]打包NGUI预制件成Assetbundle 两种思路.
  12. php动态增加div,JavaScript动态创建div等元素实例
  13. 图片hover且设置transform其父级border-radius失效
  14. 数字高程模型|DEM采集的主要方式
  15. unicode编码表,转载自:近來情轉深的博客
  16. vue组件 组件的继承extend
  17. 论文笔记 | A Tale of Two Headers: A Formal Analysis ofInconsistent Click-Jacking Protection on the Web
  18. Golang 内存逃逸
  19. win10系统自带清除磁盘垃圾工具———磁盘清理工具
  20. MySQL安装当中遇到的问题

热门文章

  1. 为什么都敏捷开发了项目还会延期?!| 技术头条
  2. 调查 10,500 名 Java 开发者发现,收费的 OracleJDK 仍是主流、IntelliJ IDEA 最受欢迎...
  3. 我是如何在 10 分钟内搞砸 IT 面试的
  4. 程序员如何淡定度过 2.14 情人节?
  5. 删除链表的倒数第 N 个节点
  6. Redis配置优化和使用
  7. python对列求和_对单个列求和的最快方法
  8. java数组有跨类建立对象_50个性能优化的细节:Java高级开发必会,来学习下吧...
  9. lnmp编译安装mysql_LNMP一键包不安装mysql | 厘米天空
  10. oracle12C推SCN,Oracle 的 DBMS_SCN 修正以及SCN的auto-rollover新特性