
SQL优化
文章平均质量分 78
云原生AI百宝箱
行万里路,此处相逢,共话云原生A之道。偶逗趣事,明月清风,与君同坐。已出版《Kubernetes:云原生与容器编排实战》,将出版《A大模型原理与场景应用》
展开
-
mysql查看实时语句和慢sql
Mysql除了手动执行的语句,还有很多在后台由其他模块执行的语句,按理来说,那些由其他模块执行的语句是不能实时查看的,因为这个资源消耗特别的大,但是当我们实在需要查看实时sql语句的时候也不是做不到,需要手动开启一个日志开关。首先登陆mysql,然后执行发现这个Value是off,那么就说明实时记录可见我们不仅打开了的开关,而且设置日志输出方式为文件(如果设置的话,则日志结果会记录到名为的表中,这表的默认引擎都是CSV)。同时规定它的保存位置是。转载 2022-12-23 15:10:01 · 669 阅读 · 0 评论 -
MySQL: SELECT同时UPDATE同一张表
MySQL不允许SELECT FROM后面指向用作UPDATE的表,有时候让人纠结。当然,有比创建无休止的临时表更好的办法。本文解释如何UPDATE一张表,同时在查询子句中使用SELECT.问题描述假设我要UPDATE的表跟查询子句是同一张表,这样做有许多种原因,例如用统计数据更新表的字段(此时需要用group子句返回统计值),从某一条记录的字段update另一条记录,而不必使用非标准...翻译 2019-03-18 10:17:54 · 4865 阅读 · 0 评论 -
MySQL:19 个优化方法
本文我们来谈谈项目中常用的MySQL优化方法,共19条,利用好这19条方法,会让你的效率提升至少3倍。1、EXPLAIN做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。下面来个简单的示例,标注(1、2、3、4、5)我们要重点关注的数据: type列,连接类型。一个好的SQL语句至少要达到range级别。杜绝出现all级别。 key列,使用到的...转载 2019-03-03 17:57:34 · 1031 阅读 · 0 评论 -
MySQL: 高性能优化实战总结
1.1 前言 在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已。更多关于MySQL查询相关参照:http://www.cnblogs.com/clsn/p/8038964.html#_label6系列文章。图 - MySQL查询过程1.2 优化的哲学...转载 2019-03-03 17:40:15 · 559 阅读 · 0 评论 -
SQL:union all和union的区别 和使用
如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。UNION用的比较多union all是直接连接,取到得是所有值,记录可能有重复 union 是取唯一值,记录没有重复1、UNION 的语法:[SQL 语句 1]UNION[SQL 语句 2]...原创 2019-02-11 09:24:10 · 20019 阅读 · 0 评论 -
MySQL大表优化方案
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段 尽量使用TINYINT...转载 2018-09-12 19:38:58 · 6091 阅读 · 0 评论 -
SQL: select非group by的字段
在含有Group by子句的查询语句中,对select关键字后的目标列是否可总结出一些规律group by 后面的字段列表, 就是按照这些字段分类汇总因此select后面的字段列表, 除了上面的字段外,其余字段必须是聚集表达式.聚集表达式可以求和,求平均值,计数等等否则出错比如:select a,b,avg(c),sum(d) from 表 group by a,bSELECT p.id, p...原创 2018-07-02 08:24:00 · 29631 阅读 · 0 评论 -
SQL:查找或删除重复行
本文讲述如何查找数据库里重复的行。这是初学者十分普遍遇到的问题。方法也很简单。这个问题还可以有其他演变,例如,如何查找“两字段重复的行”(#mysql IRC 频道最近问到的问题)如何查找重复行 第一步是定义什么样的行才是重复行。多数情况下很简单:它们某一列具有相同的值。本文采用这一定义,或许你对“重复”的定义比这复杂,你需要对sql做些修改。本文要用到的数据样本create tab...翻译 2018-04-18 07:27:07 · 26835 阅读 · 0 评论 -
MySQL常用SQL(含复杂SQL查询)
1、复杂SQL查询1.1、单表查询(1)选择指定的列[例]查询全体学生的学号和姓名select Sno as 学号,Sname as 姓名 from student;select Sno,Sname from student;(2)查询全部列[例]查询全体学生的详细信息select * from student;(3)对查询后的指定列进行命名[...转载 2018-04-09 08:26:59 · 60792 阅读 · 9 评论 -
MySQL查看锁表
锁状态mysql的锁有表锁和行锁,myisam最小锁为表锁,innodb最小锁为行锁,可以通过以下命令获取锁定次数、锁定造成其他线程等待次数,以及锁定等待时间信息。show status like '%lock%';如当Table_locks_waited与Table_locks_immediate的比值较大,则说明我们的表锁造成的阻塞比较严重,可能需要调整Query语句,或者更改存...原创 2017-11-24 20:54:07 · 23673 阅读 · 2 评论 -
SQL索引建立原则和使用
前言SQL索引有两种,聚集索引和非聚集索引 聚集索引存储记录是物理上连续存在,而非聚集索引是逻辑上的连续,物理存储并不连续 字典的拼音查询法就是聚集索引,字典的部首查询就是一个非聚集索引. 聚集索引和非聚集索引的根本区别是表记录的排列顺序和与索引的排列顺序是否一致 聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个。建立索引的原则:...原创 2017-12-01 18:52:21 · 29608 阅读 · 0 评论 -
SQL优化 - 避免使用 IN 和 NOT IN
WHY?IN 和 NOT IN 是比较常用的关键字,为什么要尽量避免呢?1、效率低 项目中遇到这么个情况:t1表 和 t2表 都是150w条数据,600M的样子,都不算大。但是这样一句查询 ↓select * from t1 where phone not in (select phone from t2)转载 2017-10-19 19:51:07 · 109133 阅读 · 15 评论 -
使用位运算,处理数据库中的"多选状态标识"
引言【摘自其他文章】: 最近在对公司以前的一个项目进行调整时发现,数据库中有很多表示“多选状态标识”的字段。“多选状态标识”可能描述的并不十分准确,在这里用我们项目中的几个例子进行说明一下。 例一:表示某个商家是否支持多种会员卡打折(如有金卡、银卡、其他卡等),项目中的以往的做法是:在每条商家记录中为每种会员卡建立一个标志位字段。如图:原创 2017-07-12 20:43:26 · 22218 阅读 · 7 评论