作为一名后端程序员,可以说天天都要跟数据库打交道,不管使用的是 MySQL, Oracle 还是 SQL Server,毫无疑问都逃不开 SQL,所以日常工作中对于 SQL 的性能优化可谓说十分重要。今天阿粉就带大家看一下,每个后端程序员都应该知道的十个提升查询性能的技巧。1、使用 Exists 代替子查询子查询在日常的工作中不可避免一定会使用到,很多时候我 ......
473
0
0
2022-12-31
兄弟们。浅浅的炫个富吧。说出来你们可能不信。手机你们有吗?我有。短信,知道吧?一条一毛钱,我天天发。你敢想吗?所以说,年轻人,有钱是真的好。今天,我们就以短信为话题聊起。短信,它又叫SMS。比如说,你有一张短信表(sms),里面放了各种需要发送的短信信息。sms建表sqlsms表需要注意的是state字段,为0的时候说明这时候短信还未发送。此时还会有一个异步 ......
464
0
0
2022-12-28
同一个数据分析的需求,不同人的SQL代码效率上会差别很大!本文给大家梳理集中效率优化方法,这也是数据岗面试的高频问题哦!快学起来~所有的数据相关工作人员,包括数据开发、数据分析师、数据科学家等,多多少少会使用数据库,我们很多的业务数据也是存放在业务表中。但即使是同一个需求,不同人写出的 SQL 效率上也会有很大差别,而我们在数据岗位面试的时候,也会考察相关的 ......
382
0
0
2022-12-23
0 前言先来看一副很有意思的漫画:相信大家对于学校们糟糕的网络环境和运维手段都早有体会,在此就不多做吐槽了。今天我们来聊一聊SQL注入相关的内容。1 何谓SQL注入?SQL注入是一种非常常见的数据库攻击手段,SQL注入漏洞也是网络世界中最普遍的漏洞之一。大家也许都听过某某学长通过攻击学校数据库修改自己成绩的事情,这些学长们一般用的就是SQL注入方法。SQL注 ......
522
0
0
2022-12-17
SQL语句性能优化1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。3,应尽量避免在 where 子句中使用!=或<& ......
395
0
0
2022-12-15
MySQL性能最大数据量最大并发数查询耗时0.5秒实施原则数据表设计数据类型避免空值text类型索引优化索引分类优化原则SQL优化分批处理不做列运算避免Select *操作符<>优化OR优化IN优化LIKE优化JOIN优化LIMIT优化其他数据库博主负责的项目主要采用阿里云数据库MySQL,最近频繁出现慢SQL告警,执行时间最长的竟然高达5分钟。 ......
457
0
0
2022-12-15
SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN)、SQL LEFT JOIN、SQL RIGHT JOIN、SQL FULL JOIN,其中前一种是内连接,后三种是外链接。假设我们有两张表,Table A是左边的表,Table B是右边的表。一、IN ......
372
0
0
2022-12-15
有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: 107 ms),按照下文的方式调整SQL后,耗时347 ms (execution: 163 ms, fetching: 184 ms);操作: 查询条件放到子 ......
400
0
0
2022-12-15
1、in和existsin是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询,一直以来认为exists比in效率高的说法是不准确的。如果查询的两个表大小相当,那么用in和exists差别不大;如果两个表中一个较小一个较大,则子查询表大的用exists,子查询表小的用in;例如:表A(小表),表B(大表)sel ......
411
0
0
2022-12-15
前言sql优化是一个大家都比较关注的热门话题,无论你在面试,还是工作中,都很有可能会遇到。如果某天你负责的某个线上接口,出现了性能问题,需要做优化。那么你首先想到的很有可能是优化sql语句,因为它的改造成本相对于代码来说也要小得多。那么,如何优化sql语句呢?这篇文章从15个方面,分享了sql优化的一些小技巧,希望对你有所帮助。15个SQL优化技巧1. 避免 ......
468
0
0
2022-11-17
小伙伴想精准查找自己想看的MySQL文章?喏 → MySQL专栏目录 | 点击这里BATJTMD等大厂的面试难度越来越高,但无论从大厂还是到小公司,一直未变的一个重点就是对SQL优化经验的考察。一提到数据库,先“说一说你对SQL优化的见解吧?”。SQL优化已经成为衡量程序猿优秀与否的硬性指标,甚至在各大厂招聘岗位职能上都有明码标注,如果是你,在这个问题上能吊 ......
437
0
0
2022-11-17
DML语句插入数据记录(INSERT)插入单条:INSERT INTO 表名 [(字段名列表)] VALUES (值列表);插入多条:INSERT INTO 新表(字段名列表VALUES(值列表1),(值列表2),……,(值列表n);更新数据记录(UPDATE)UPDATE 表名 SET 字段1=值1,字段2=值2,…,字段n=值n [WHERE 条件];删 ......
551
0
0
2022-11-15
在谈及mvcc之前 我们需要了解以下知识锁共享锁【S锁】 又称读锁,若事务T对数据对象A加上S锁,则其它事务可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。(表级锁)排他锁【X锁】又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事 ......
459
0
0
2022-11-14
rank() over 函数为结果集分区里的每一行分配一个排名 RANK() OVER ( [PARTITION BY partition_expression, ... ] ORDER BY sort_expression [ASC | DESC], ... ) // partition by 对结果集进行分组 ......
564
0
0
2022-11-14
项目背景有三张百万级数据表知识点表(ex_subject_point)9,316条数据试题表(ex_question_junior)2,159,519条数据 有45个字段知识点试题关系表(ex_question_r_knowledge)3,156,155条数据测试数据库为:mysql (5.7)1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where ......
439
0
0
2022-11-11