有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: 107 ms),按照下文的方式调整SQL后,耗时347 ms (execution: 163 ms, fetching: 184 ms);操作: 查询条件放到子 ......
271
0
0
2022-12-15
1、in和existsin是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询,一直以来认为exists比in效率高的说法是不准确的。如果查询的两个表大小相当,那么用in和exists差别不大;如果两个表中一个较小一个较大,则子查询表大的用exists,子查询表小的用in;例如:表A(小表),表B(大表)sel ......
280
0
0
2022-12-15
前言sql优化是一个大家都比较关注的热门话题,无论你在面试,还是工作中,都很有可能会遇到。如果某天你负责的某个线上接口,出现了性能问题,需要做优化。那么你首先想到的很有可能是优化sql语句,因为它的改造成本相对于代码来说也要小得多。那么,如何优化sql语句呢?这篇文章从15个方面,分享了sql优化的一些小技巧,希望对你有所帮助。15个SQL优化技巧1. 避免 ......
339
0
0
2022-11-17
小伙伴想精准查找自己想看的MySQL文章?喏 → MySQL专栏目录 | 点击这里BATJTMD等大厂的面试难度越来越高,但无论从大厂还是到小公司,一直未变的一个重点就是对SQL优化经验的考察。一提到数据库,先“说一说你对SQL优化的见解吧?”。SQL优化已经成为衡量程序猿优秀与否的硬性指标,甚至在各大厂招聘岗位职能上都有明码标注,如果是你,在这个问题上能吊 ......
296
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 条件];删 ......
361
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,其他事 ......
285
0
0
2022-11-14
rank() over 函数为结果集分区里的每一行分配一个排名 RANK() OVER ( [PARTITION BY partition_expression, ... ] ORDER BY sort_expression [ASC | DESC], ... ) // partition by 对结果集进行分组 ......
371
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 ......
299
0
0
2022-11-11
作者 | 波波说运维出品 | 波波说运维如何快速定位消耗 CPU 最高的 SQL 语句?概述如果是Oracle数据库我们可以很容易通过sql来定位到当前数据库中哪些消耗CPU高的语句,而mysql数据库可以怎么定位呢?这里用一个简单例子说明下...主要是了解如何定位的思路,具体看官网介绍..参考:https://www.percona.com/blog/20 ......
275
0
0
2022-11-10
01 SQLSQL,脚本查询语言,处理代码的顺序不是按照脚本语言的顺序,这点是不同于其他编程语言的最明显特征。SQL语言常见的比如,Mysql,HiveQL,Oracle等,虽然语法上存在一些差异,但它们在解释查询脚本上,尤其是在解析语句执行顺序上具有共性。如果将脚本语言分解为一系列的语句,那么这些语句的先后执行顺序是怎样的呢?这篇文章,主要总结SQL语句的 ......
278
0
0
2022-11-10
科多大数据为大家简单的介绍mysql中count(1)与count(*) 性能比较。通常大家走入一个误区是,count(*) 为全表扫描,所以认为count(*) 的效率是最低的。而实际上,如何写count 并没有什么太大的区别。sql调优,主要是考虑降低:consistent gets和physical reads的数量。count(1)与count(*) ......
270
0
0
2022-11-10
一、SQL概述1.背景知识SQL(Structured Query Langyage,结构化查询语言)是使用关系模型的数据库应用语言,与数据直接打交道,由IBM上世纪70年代开发,后由美国国家标准局(ANSI)开始着手指定SQL标准,先后有SQL-86,SQL-89,SQL-92,SQL-99等标准SQL有两个重要的标准,分别是SQL92和SQL99,分别代 ......
287
0
0
2022-10-22
一、前言SQL 最强大的功能之一就是能在数据检索查询的执行中联结表。联结是利用 SQL 的 SELECT 执行的最重要的操作,很好地理解联结及其语法是学习 SQL 的一个极为重要的组成部分。二、E-R 图与班级学生表E-R 图如下:学生表如下,如果学生已经分配了班级,class_id 列则为分配班级的编号,否则为 NULL(意为未分配):班级表如下:三、内联 ......
356
0
0
2022-10-10
#数据迁移(复制数据新表 overunder_crown_half,被复制数据老表 overunder_crown_half1) insert into overunder_crown_half select * from overunder_crown_half1 #新表复制旧表数据(新表 overunder_crown_half,被复制数据 ......
332
0
0
2022-10-07
对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引:尝试下面的技巧以避免优化器错选了表扫描:使用ANALYZE TABLE tbl_name为扫描的表更新关键字分布。对扫描的表使用FORCE INDEX告知MySQL,相对于使用给定的索引表扫描将非常耗时。SELECT * FROM t1, t2 FORCE ......
375
0
0
2022-09-01