大多数的接口性能问题,很多情况下都是SQL问题,在工作中,我们也会定期对慢SQL进行优化,以提高接口性能。这里总结一下常见的优化方向和策略。避免使用select *,减少查询字段不要为了图省事,直接查询全部的字段,尽量查需要的字段,特别是复杂的SQL,能够避免很多不走索引的情况。这也是最基本的方法。检查执行计划,是否走索引检查where和order by字段 ......
43
0
0
2024-10-29
何为半连接?半连接是在GreatSQL内部采用的一种执行子查询的方式,semi join不是语法关键字,不能像使用inner join、left join、right join这种语法关键字一样提供给用户来编写SQL语句。两个表t1表和t2表进行半连接的含义是:对于t1表的某条记录来说,我们只关心在t2表中是否存在与之匹配的记录,而不关心有多少条记录与之匹配 ......
157
0
0
2024-08-26
引言项目上生产环境最近有个借口查询突然需要45秒左右。了不起看到这个问题很疑惑,什么情况,这个接口之前好像没有出现过任何问题吧。经和运维配合查看,发现是SQL语句问题,有个sql查询脚本执行竟然消耗了40秒,我拿出来自己执行发现亦是如此。sql大致情况就是有个left join了一张表,有10几万数据,使用explain查看,就是这个表执行消耗了近40秒。解 ......
508
0
0
2024-01-18
前不久看了SQL优化的视频,学的时候醍醐灌顶,学完后发现就是在围绕着explain的各个字段讲解,先把学习的知识梳理一下,当然自己还是有很多不会的地方,后期不断完善。sql优化是面试必问的面试点,而 SQL优化主要就是在优化索引。 在学习索引优化之前,需要知道SQL的执行顺序,这里只给结论,深入学习可参考文章:步步深入: mysql 架构总览->查询执 ......
268
0
0
2023-11-02
前言 SQL优化一般步骤 1、通过慢查日志等定位那些执行效率较低的SQL语句 2、explain 分析SQL的执行计划 3、show profile 分析 4、trace 5、确定问题并采用相应的措施 场景分析 例1、最左匹配 例2、隐式转换 例3、大分页 例4、in + order by 例5、范围查询阻断 ......
402
0
0
2023-07-04
一、查询 sql 尽量不要使用select *,而是具体字段 1、反例 SELECT * FROM user 2、正例 SELECT id,username,tel FROM user 3、理由 节省资源、减少网络开销。 可能用到 覆盖索引 ,减少回表,提高查询效率。 注意:为节省时间,下面的样例字段都用*代替了。 二、避免在where子句中使用 ......
412
0
0
2023-06-25
目录介绍:问:比如,现在有个面试官说,现在线上有个SQL执行很慢,你怎么优化?问:慢 SQL 语句的几种常见诱因?问:平时写SQL时该注意什么?有什么经验可谈?问:有哪些影响数据库性能的瓶颈?问:改善SQL性能涉及哪些步骤?问:您如何分析执行计划?问:您如何使用执行计划调整查询?问:什么是Summary advisor,它提供什么类型的信息?问:是什么最有可 ......
345
0
0
2023-04-07
我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。本文旨在以开发工程师的角度来解释数据库索引的原理和如何优化慢查询。MySQL索引原理1.索引目的索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯 ......
351
0
0
2023-03-26
1)对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2)应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。3)应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t ......
393
0
0
2023-03-17
作者:胡呈清爱可生 DBA 团队成员,擅长故障分析、性能优化,个人博客:https://www.jianshu.com/u/a95ec11f67a8,欢迎讨论。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。什么是ICP(Index Condition Pushdown)ICP全称 Index Conditio ......
453
0
0
2023-01-08
作为一名后端程序员,可以说天天都要跟数据库打交道,不管使用的是 MySQL, Oracle 还是 SQL Server,毫无疑问都逃不开 SQL,所以日常工作中对于 SQL 的性能优化可谓说十分重要。今天阿粉就带大家看一下,每个后端程序员都应该知道的十个提升查询性能的技巧。1、使用 Exists 代替子查询子查询在日常的工作中不可避免一定会使用到,很多时候我 ......
465
0
0
2022-12-31
兄弟们。浅浅的炫个富吧。说出来你们可能不信。手机你们有吗?我有。短信,知道吧?一条一毛钱,我天天发。你敢想吗?所以说,年轻人,有钱是真的好。今天,我们就以短信为话题聊起。短信,它又叫SMS。比如说,你有一张短信表(sms),里面放了各种需要发送的短信信息。sms建表sqlsms表需要注意的是state字段,为0的时候说明这时候短信还未发送。此时还会有一个异步 ......
455
0
0
2022-12-28
同一个数据分析的需求,不同人的SQL代码效率上会差别很大!本文给大家梳理集中效率优化方法,这也是数据岗面试的高频问题哦!快学起来~所有的数据相关工作人员,包括数据开发、数据分析师、数据科学家等,多多少少会使用数据库,我们很多的业务数据也是存放在业务表中。但即使是同一个需求,不同人写出的 SQL 效率上也会有很大差别,而我们在数据岗位面试的时候,也会考察相关的 ......
373
0
0
2022-12-23
SQL语句性能优化1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。3,应尽量避免在 where 子句中使用!=或<& ......
386
0
0
2022-12-15
MySQL性能最大数据量最大并发数查询耗时0.5秒实施原则数据表设计数据类型避免空值text类型索引优化索引分类优化原则SQL优化分批处理不做列运算避免Select *操作符<>优化OR优化IN优化LIKE优化JOIN优化LIMIT优化其他数据库博主负责的项目主要采用阿里云数据库MySQL,最近频繁出现慢SQL告警,执行时间最长的竟然高达5分钟。 ......
446
0
0
2022-12-15