慢SQL优化

5 篇文章 0 订阅
订阅专栏
本文详细介绍了MySQL数据库的慢查询统计方法,包括如何开启慢查询日志和设置阈值。同时,提出了优化策略,如索引优化、SQL语句优化和表设计优化。索引优化涉及索引的选择、匹配原则和前缀模糊查询等问题;SQL优化关注避免全表扫描、减少子查询和联表查询;表设计优化则提到了分库分表、数据均匀分布和字段数量控制。此外,还解析了MySQLExplain命令中type列的含义,帮助理解查询执行计划。
摘要由CSDN通过智能技术生成

1、慢查询统计

show VARIABLES like '%que%'

SET GLOBAL slow_query_log = on; //开启慢sql统计开关

SET GLOBAL long_query_time = 1; //设置超过1秒则 认为是慢sql , 注意此处设置完之后需要重新链接客户端 才可以查看到设置成功

2、优化

索引优化

通过执行计划,查看是否走到索引

(1)索引是否有区分度

(2)是否忽略左匹配原则

(3)采用前缀模糊查询等坏语句

(4)没有做类型转换,导致未走到索引,比如使用$

(5)使用了不等号

(6)大量子查询(多用join,避免临时表)

(7)在where子句中使用表达式操作、函数操作等

SQL语句优化

(1)避免使用select*,不要返回不必要的字段,增加索引覆盖的概率

(2)尽量减少子查询(子查询会创建临时表,查询完毕删除临时表)

(3)调整where子句的连接顺序,将过滤数据多的条件放在前面,最快速度缩小结果集

(4)尽量减少联表查询,联表查询是笛卡尔乘积的形式,检索的数据几何倍上升

(5)一次查询的结果最好不要过大,可以使用分页查询

表设计优化

(1)大数据量分库分表

(2)数据避免倾斜

(3)单表的字段最好不要超过20个。如果是比较大的表,有的字段使用的多,有的字段使用比较少,使用频率比较少的会拖慢查询速度

(4)列类型的选择是否合适(能用int却用了bigint等)

3、索引Type详解

MySQL Explain命令详解:type列详解及案例分析 - 知乎

SQL优化In PostgreSQL
10-21
### SQL优化In PostgreSQL #### 一、直接创建索引(Create Index Directly) 创建索引能够显著提升查询性能,特别是在数据量较大时。但需要注意的是,索引的选择性对于提升性能至关重要。例如,如果`WHERE`条件是`...
告别SQL,如何去写一手好SQL
公众号-老炮说Java
10-17 993
点击蓝色“java版web项目”关注我哟加个“星标”,优质文章,第一时间送达上一篇:这300G的Java资料是我师傅当年给我的,免费分享给大家下一篇:这200G的Java实战资料是我师傅...
SQL,压垮团队的最后一根稻草!
m0_71327177的博客
08-15 1933
我们都知道,我们每执行一次 SQL,数据库除了会返回执行结果以外,还会返回 SQL 执行耗时,以 MySQL 数据库为例,当我们开启了 SQL 监控开关后,默认配置下,当 SQL 的执行时长大于 10 秒,会被记录到 SQL 的日志文件中。本文主要围绕 SQL 的定位和可能存在的风险进行了简单的介绍,整篇介绍的算是一个入门级的知识,文章内容难免有些理解不到位的地方,欢迎网友留言指出!因此我们不难发现,在没有开启缓存的情况下,当表的数据量越大,如果 SQL 又没有走索引,很容易发生查询的问题。...
SQL查询优化方式
最新发布
echola_mendes的博客
08-28 2897
MYSQL优化一般从SQL语句开始优化,再分析索引,即使有了良好的索引,糟糕的查询语句也可能导致性能问题优化查询语句可以帮助数据库更有效地利用现有的资源,减少不必要的开销。
聊聊sql优化的15个小技巧
lisu061714112的专栏
11-10 8859
前言 sql优化是一个大家都比较关注的热门话题,无论你在面试,还是工作中,都很有可能会遇到。 如果某天你负责的某个线上接口,出现了性能问题,需要做优化。那么你首先想到的很有可能是优化sql语句,因为它的改造成本相对于代码来说也要小得多。 那么,如何优化sql语句呢? ​ 我的个人技术博客:https://susan.net.cn​​​​​​​ ​ 这篇文章从15个方面,分享了sql优化的一些小技巧,希望对你有所帮助。 最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没
查询SQL如何优化
m0_70386582的博客
09-14 2007
SQL指的是Mysql中执行比较SQL,排查SQL最常用的方法是通过查询日志来查找SQLMysql查询日志是Mysql提供的一种日志记录,它用来记录Mysql中响应时间超过long_query_time值的sql,long_query_time的默认时间为10s.当我们需要对查询的语句order by的时候,如果order by后面的字段如果在索引列中,因为索引本来就是排好序的,所以速度很快,没有索引的话,就需要从表中拿数据,在内存中进行排序,如果内存空间不够还会发生落盘操作。
SQL语句优化
u013733643的博客
04-10 1万+
SQL语句优化一般可以按下面几步思路:开启查询日志,设置超过几秒为SQL语句,抓取SQL语句;通过explain查看执行计划,对SQL语句分析;创建索引并调整语句,再查看执行计划,对比调优结果。   参数 slow_query_log:表示是否开启查询日志。语句“set global slow_query_log=on”临时开启查询日志,如果想关闭查询日志只需要执行“set global slow_query_log=off ”即可。 参数slow_query_log_..
SQL优化 SQL优化软件 SQL优化工具
12-14
使用SQL优化工具时,要注意结合实际业务场景和数据库架构,避免盲目优化导致的副作用,如过度依赖索引可能导致插入和更新操作变,或者内存消耗增加。同时,优化过程中应遵循最佳实践,比如合理设计数据库模式、...
PostgreSQLSQL调优手册
02-03
**PostgreSQL SQL 调优手册** 1、**Create Index Directly** 创建合适的索引是优化查询性能的关键。为经常出现在 WHERE 子句中的列创建索引可以显著提升查询速度。例如,如果你的查询频繁地过滤某个特定列,如 ...
ORACLE-SQL性能优化大全.pdf
02-23
- **SQL优化机制**: - **SQL语句处理过程**:理解SQL语句在Oracle中的处理流程对于优化至关重要。 - **共享SQL区域**:Oracle会在内存的共享池中缓存已执行过的SQL语句,以便后续执行时可以直接使用而无需重新...
如何针对查询的sql进行优化?
ggjklncffd的博客
03-05 3085
在优化 SQL 时,可以使用 EXPLAIN 命令来查看查询计划,找到 SQL 查询性能瓶颈,进而进行针对性优化。优化 JOIN 操作:在使用 JOIN 操作时,确保连接条件是正确的,并尽可能使用 INNER JOIN 而不是 OUTER JOIN,因为 INNER JOIN 的性能通常更好。减少返回数据量:尽可能只返回需要的数据,可以通过使用 SELECT 子句来指定需要的列,并使用 LIMIT 限制返回的行数。使用索引:确保表中的列都有适当的索引,尤其是在查询中频繁使用的列。
sql优化的15个小技巧
weixin_56017850的博客
04-12 1万+
最近找了找怎么优化SQL,总结了15个基础技巧 因为最近一直在写sql的原因,所以需要知道sql该怎么优化,怕哪一天线上的接口,出了问题,需要优化,就需要采用改造成本最小的. 先上个思维导图 1.避免使用select* ...
SQL优化的15个小技巧,纯干货分享!
热门推荐
黄团团的个人博客
07-10 1万+
普通索引最基本的索引,没有任何限制唯一索引与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值主索引即主键索引,关键字PRIMARY复合索引为了更多的提高MySQL效率可建立组合索引,遵循“最左前缀”原则全文索引可用于MyISAM表,MySQL5.6之后也可用于innodb表,用于在一篇文章中,检索文本信息的, 针对较大的数据,生成全文索引很耗时和空间以上就是目前我对SQL优化的一些个人理解和总结,如果遗漏,欢迎评论区补充说明!
SQL解决方案
wu_noah的博客
11-28 5804
1. 背景 SQL是稳定性中重要的一部分,一般指查询时间超过1s或扫描行数百万的SQL操作,可以通过show variables like 'long_query_time'查看。对于交易这类对稳定性要求很高的业务来说治理SQL格外重要。这里总结下交易中不同业务存在的SQL问题,以及一些通用的解决方案 SQL发现方式有:SRSSQL治理平台、CloudDBASQL日志、交易SQL报表(离线表cda_sql.das_slowsql_detail_aligroup) 2. 危害 响应时
SQL优化的30个思路方案整理
发现问题,面对问题,分析问题,解决问题,总结问题
08-07 2502
对于一些特别大的表,单靠索引优化可能效果有限。这时,可以通过业务层面的优化来限制查询的时间范围,从而缩小查询范围,提高查询性能。以下是一些业务上可以采取的优化措施: 对大表进行时间范围分区(如按月、按季度),在查询时只针对相关时间段的分区进行查询,避免全表扫描。在业务层限制查询的时间窗口,如只允许查询最近一年的数据。对于超出时间窗口的查询,可以要求用户提供更具体的查询条件以缩小查询范围。 将历史数据定期归档到历史表或其他存储介质中,保持主表的数据量在一个合理范围内。查询时先在主表中查找,如果需要再到历史表中
[干货] 如何解决SQL?详细分析和优化实践!
DevCorner的Pro技术博客
06-10 6011
简单来说,SQL指的是执行时间较长的SQL语句。在数据库中,一个查询的运行时间往往会受到多种因素的影响,例如表结构、数据量和索引等。如果一条SQL语句的执行时间较长,就会降低数据库的整体性能和用户体验。因此,我们需要对SQL进行分析和优化,使得这些语句能够更快地执行并节省资源。SQL的优化是一个持续不断的过程,并没有最佳结果,需要不断借助工具进行监控分析、针对实际情况进行调整。
SQL如何进行优化
qq877192055的博客
06-21 4811
in查询在进行cost代价计算时(代价 = 元组数 * IO平均值),是通过将in包含的数值,一条条去查询获取元组数的,因此这个计算过程会比较的,所以MySQL设置了个临界值(eq_range_index_dive_limit),5.6之后超过这个临界值后该列的cost就不参与计算了。就好像看书一样,上次看到哪里了,你就折叠一下或者夹个书签,下次来看的时候,直接就翻到啦。中的数据,放到临时磁盘文件,等到所有满足条件数据都查完排完,再用归并算法把磁盘的临时排好序的小文件,合并成一个有序的大文件。
关于SQL优化的二十个小方法
weixin_72984629的博客
09-02 2260
关于SQL优化的二十个小方法
mysqlsql优化
06-27
MySQLSQL优化是指当数据库查询执行时间过长,影响系统性能时,对查询语句进行分析和调整的过程,以提高查询效率。以下是一些常见的优化策略: 1. **使用EXPLAIN分析**:使用`EXPLAIN`关键字可以查看SQL执行计划,了解哪些部分导致了查询变,例如索引使用情况、是否全表扫描等。 2. **优化查询语句**: - **避免全表扫描**:尽可能利用索引来减少数据扫描,如确保索引覆盖查询字段。 - **减少子查询**:尽量将复杂的子查询转换为JOIN操作,或使用临时表。 - **避免在WHERE子句中使用函数**:函数会破坏索引,应尽量在SELECT语句中处理。 3. **创建合适的索引**: - 针对频繁查询的列创建索引,尤其是作为WHERE条件的部分。 - 考虑复合索引(多个列组合)以匹配更复杂的查询。 4. **缓存机制**:启用`innodb_buffer_pool_size`来增大缓冲区,加快查询速度。也可以考虑使用`Query Cache`或者第三方缓存工具。 5. **优化表结构**: - 适当分区表,根据业务需求划分数据,减少单次查询的数据量。 - 减少冗余数据,避免存储不必要的重复数据。 6. **定期维护**: - 定期重建或优化索引,如使用`ALTER TABLE ... ANALYZE`。 - 清理无用的数据,保持数据表的整洁。 7. **服务器配置优化**: - 调整`max_connections`以适应并发需求。 - 调整`innodb_flush_log_at_trx_commit`以平衡写入速度和数据安全性。
27
原创
69
点赞
219
收藏
36
粉丝
关注
私信
写文章

热门文章

  • ubuntu16.04安装TensorFlow的正确步骤 65043
  • 一种基于平均思想的任务分配算法 28593
  • CentOS 7中安装指定的Kernel版本 26292
  • Kafka 11322
  • VMware12.5.7安装Ubuntu16.04.2失败的解决方案 7556

分类专栏

  • 架构设计 1篇
  • 缓存 1篇
  • 安全
  • RPC 1篇
  • 操作系统
  • 消息队列 1篇
  • 搜索 1篇
  • 软件安装 4篇
  • 算法 1篇
  • 设计模式 2篇
  • JVM 6篇
  • 语言 3篇
  • 工具 2篇
  • 数据库 5篇

最新评论

  • Kafka

    你得不到的念想: 这篇Kafka 博文,很不错的内容,我佬这篇文章结构清晰,具有条理性可以借鉴并学习和落地,内容丰富图文并茂,认真看完收获很大,码文不易且行且珍惜,小明期待我佬下一篇文章的更新,期待为更多的技术人员创造价值。 已关注点赞,求互关点赞

  • Kafka

    榴莲酱csdn: 这篇Kafka 博文,写的非常详细,内容丰富,具有条理清晰,结构严谨,内容丰富和可借鉴性等特点。 认真看完收获满满,期待下一篇文章的更新。 已关注点赞,求互关点赞

  • Kafka

    青灯壁冷细雨窗寒: 6的 akc 很秀

  • 一种基于平均思想的任务分配算法

    向上吧__少年: 应该分析一下时间复杂度

  • 一种基于平均思想的任务分配算法

    qq_36584996 回复 sheele: 用弱类型语言,注意类型转换,就不会有小数了

最新文章

  • DDD领域建模
  • RPC框架
  • Redis
2022年9篇
2021年5篇
2018年5篇
2017年9篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司青岛做网站优化宁波鄞州区热销百度网站优化网易游戏网站的优化PPT南阳网站优化效果优化网站结构及特点是什么汕头seo网站排名优化网站优化简析如何提高网站排名北京网站优化推广是什么广州网站优化推广案例嘉峪关网站优化推广找哪个公司网站建设网站排名整站优化公司百世深度优化网站盐城网站关键词优化工作室南山区网站优化电话网站优化合同法笔记完整的seo网站优化方案西城区网站优化网站的优化过程主要有哪几种方东城网站优化关键词网站核心词优化联系方式网站怎么优化速来火5星放心天津企业网站排名优化方案省心的网站品牌优化要多少钱台湾自助建网站优化推广seo网站优化swot分析漫画性能优化网站优化网站的维度大连seo网站优化推广报价南阳网站优化排名软件优化网站解读易速达香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化