mysql
文章平均质量分 52
SQL很重要,得3min内出思路!!!
YJ语
这个作者很懒,什么都没留下…
展开
-
SQL 进行递归
在SQL中写递归语句,一般可以干以下的事情(第2点可能常出现于一些SQL笔试题)原创 2022-10-21 10:45:27 · 628 阅读 · 0 评论 -
查看本地MYSQL数据库的IP地址
MYSQL IP地址原创 2022-10-11 10:01:45 · 48954 阅读 · 2 评论 -
pymysql 向MySQL 插入数据无故报错
pymysql.err.ProgrammingError: (1064, “You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘-支付买家数,粉丝支付买家数,加购商品-支付买家数,引导店铺’...原创 2022-06-20 14:35:04 · 1684 阅读 · 3 评论 -
mysql中获取累计数据
有较长一段时间没写SQL,最近快速的捡起遗忘的一些点语法:sum(字段1) over(partition by 字段2 order by 字段3 rows between unbounded preceding and current row) as 新字段名参考:https://blog.csdn.net/weixin_43332500/article/details/105033468...原创 2022-02-08 10:05:26 · 462 阅读 · 0 评论 -
数据库中字段类型转换
把字符串类型的字段转换成整形处理:select max(CAST(id AS int)) from dictionary;其中:CAST(id AS int)的意思是把字符串类型的id转换成int类型,然后使用max比较函数得到id值最大的结果!当然了,还有一种办法,就是把id改为整形类型,就不用转换了。...原创 2022-01-16 17:12:07 · 1645 阅读 · 0 评论 -
常用SQL语句函数总结
原创 2021-07-24 10:24:14 · 114 阅读 · 0 评论 -
SQL优化?这个简单!!!
根据日常的刷题笔记,总结了以下三步SQL的调优总结第一步:根据慢日志定位慢查询SQL1.首先检查SQL中是否使用函数,隐式类型转换(字符串转数字),隐式函数或者传入的值超过索引长度2.SQL中字段的字符集是否一致3.如果使用count计数,尽量使用count(*)或者count(1),count(字段)会涉及到回表操作,count(id)会全表扫描,并且count(字段)和count(id)都需要判空操作,也可以按照具体的业务选择MyISAM引擎,直接取值4.查看当前语句的状态,是否是在等MDL锁原创 2021-07-24 10:21:56 · 114 阅读 · 0 评论 -
B树+改进 = B+树
1 索引是什么?就像一本书前面的目录,能加快数据库的查询速度。索引文件也挺大的,一般存储在磁盘上2 索引的优势和劣势优势可以提高数据检索的效率,降低数据库的IO成本通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗。劣势占用磁盘空间索引虽然会提高查询效率,但是会降低更新表的效率。3 索引类型主键索引 --》(回表最终走这个), 索引列中的值必须是唯一的,不允许有空值。唯一索引索引列中的值必须是唯一的,但是允许为空值。普通索引,MySQL中基本索引类型,没有什原创 2021-07-24 10:15:40 · 183 阅读 · 0 评论 -
我说 SELECT COUNT(*) 会造成全表扫描,面试官说拜拜!
SELECT COUNT(*)通过最小索引树遍历后不需要返回行数据直接+1SELECT COUNT(1)count(1)是需要返回数据的但是不做为空判断+1SELECT COUNT(字段)count(字段)是需要返回数据的但是不做为空判断+1,相比SELECT COUNT(1)占用的内存更多按照效率排序的话:count(字段)<count(主键id)<count(1)≈count()所以我建议你,尽量使用count()。由上面比较可以看出,由于Mysql优化器的原因原创 2021-06-02 15:06:48 · 1215 阅读 · 0 评论 -
Mysql 三大特性
详情参考:https://www.cnblogs.com/tmesh/p/11731351.html三大特性之一插入缓冲三大特性之二double write三大特性之三自适应哈希索引原创 2021-06-01 16:27:40 · 458 阅读 · 0 评论 -
什么是增量表,全量表,快照表?
按照每天存放的数据以及是否按天分区可以分为增量表,全量表和快照表原创 2021-06-01 15:48:25 · 564 阅读 · 0 评论 -
一道SQL面试题
面试官提问,把第一段 SQL 改为第二段后,为什么性能会有如此之大的提高,优化逻辑是什么。这是今天在群友在群里提出来的一个问题!当我看到题目的第一眼,我想到的是回表操作,对于第1段SQL的话应该需要回表;而对于第2段SQL的话,也是在回表操作后,使用join获取想要的数据。理论上对第1段SQl语句,只是回表1次;而第2段SQL语句也是需回表,并且还需要表连接,应该是第2段的SQL语句的时间更长才对。如果是第2段SQL比第1段SQL快的话,应该是有索引的作用,理论上也应该如此,但是会我回答的是底.原创 2021-05-12 15:32:48 · 87 阅读 · 0 评论 -
SQL JOIN 中 on 与 where 的区别
假设有两张表:假如要执行两条SQL语句第一条SQLselect * from tab1 left join tab2 on (tab1.size = tab2.size) where tab2.name='AAA'第一条SQL的过程:第二条SQL:select * from tab1 left join tab2 on (tab1.size = tab2.size and tab2.name='AAA')第二条SQL的过程:在使用 left jion 时,on 和 where 条件原创 2021-04-21 21:14:21 · 335 阅读 · 0 评论 -
Mysql语句总结
原创 2021-04-15 22:09:56 · 90 阅读 · 0 评论 -
SQL行转列,列转行
SQL 行转列,列转行行列转换在做报表分析时还是经常会遇到的,今天就说一下如何实现行列转换吧。行列转换就是如下图所示两种展示形式的互相转换列转行(上面图1变图2)SELECT name, MAX(CASE WHEN subject='语文' THEN score ELSE END) AS "语文", MAX(CASE WHEN subject='数学' THEN score ELSE 0 END) AS "数学", MAX(CASE WHEN subject='英语' THEN sco原创 2021-04-11 09:04:42 · 251 阅读 · 0 评论 -
【学习笔记】 mysql45讲 Part2
9-4509 | 普通索引和唯一索引,应该怎么选择?9.1 查询过程 假设,执行查询的语句是 select id from T where k=5。这个查询语句在索引树上查找的过程,先是通过 B+ 树从树根开始,按层搜索到叶子节点(回表),也就是图中右下角的这个数据页,然后可以认为数据页内部通过二分法来定位记录。 1)对于唯一索引来说,由于索引定义了唯一性,查找到第一个满足条件的记录后,就会停止继续检索。 2)对于普通索引来说,查找到满足条件的第一个记录 (5,500) 后,需要查找下一原创 2021-03-27 08:56:41 · 109 阅读 · 0 评论 -
【学习笔记】Mysql45讲 Part1
Mysql1-8讲由文章整体逻辑——>文章注意要点——> 总结01 | 基础架构:一条SQL查询语句是如何执行的?1 用户由登录,到一个查询语句的执行过程是怎么样的?2 短连接?长连接?短连接是执行几次就断开;长连接是一直使用的通一个连接3 为什么使用长连接?为什么要定时超时断开,或通过重新初始化?连接较为复杂——建议使用长连接。长连接导致缓存过大1.1 连接器1.2 查询缓存1.3 分析器1.4 优化器1.5 执行器02 | 日志系统:一条SQL更新语句是如何执行原创 2021-03-27 08:54:08 · 130 阅读 · 0 评论 -
group by原理和理解
写在前面的话:主要解决以下两个问题:为什么不能够select * from Table group by id,为什么一定不能是*,而是某一个列或者某个列的聚合函数,group by 多个字段可以怎么去很好的理解呢?group by 时,需要扫描多少次?(应是扫描一遍表)=正文开始===先来看下表1,表名为test:执行如下SQL语句:SELECT name FROM testGROUP BY name你应该很容易知道运行的结果,没错,就是下表2:可是为了能够更好的理解原创 2021-02-07 22:57:23 · 180 阅读 · 0 评论 -
图解SQL的inner join、left join、right join、full outer join、union、union all的区别
假设我们有两张表。Table A 是左边的表。Table B 是右边的表。其各有四条记录,其中有两条记录name是相同的,如下所示:让我们看看不同JOIN的不同1.INNER JOINSELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name2.FULL [OUTER] JOIN(1)SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = able原创 2021-01-25 20:51:57 · 172 阅读 · 0 评论 -
对比rank, dense_rank, row_number
1、一道题惹得祸letcode——185. 部门工资前三高的所有员工,经典TOPN问题!2、对比 rank, dense_rank, row_number【题目】“成绩表”记录了学生的学号,学生选修的课程,以及对应课程的成绩。为了对学生成绩进行考核,现需要查询每门课程的前3高成绩。注意:如果出现并列第一的情况,则同为第一名。【解题思路】题目要求找出每个课程获得前三高成绩的所有学生。难点在于每个课程前3高成绩。前3高的成绩意味着要对成绩排名。专用窗口函数rank, dense_rank,原创 2021-01-15 21:46:35 · 2027 阅读 · 0 评论 -
部门工资前三高的所有员工
letcode——185. 部门工资前三高的所有员工1、使用表连接(join)进行求解:select t3.Name Department, t1.Name Employee, t1.Salaryfrom Employee t1join ( select e1.DepartmentId, e1.Salary from Employee e1 left join Employee e2 on e1.DepartmentId = e2.DepartmentId原创 2021-01-15 21:16:41 · 142 阅读 · 0 评论 -
join语句怎么优化
join语句怎么优化mysql中一般使用的是Index Nested-Loop Join(NLJ)和Block Nested-Loop Join(BNL)。(对应被驱动表有索引和没有索引的两种情况)我们发现在使用NLJ算法的时候,效果还是不错的;但是,BNL算法在大表join的时候性能就差多了,比较次数等于两个表参与join的行数的乘积,很消耗CPU资源。那这两个算法又怎么近一步优化?Index Nested-Loop Join(NLJ) ----------> Batched Key原创 2021-01-11 17:13:10 · 239 阅读 · 0 评论 -
到底可不可以使用join
到底可不可以使用join在实际生产中,关于join语句使用的问题,一般会集中在以下两类:我们DBA不让使用join,使用join有什么问题呢?如果有两个大小不同的表做join,应该用哪个表做驱动表呢?以下创建两个表t1和t2来和你说明。CREATE TABLE t2 ( id int(11) NOT NULL, a int(11) DEFAULT NULL, b int(11) DEFAULT NULL, PRIMARY KEY (id), KEY a (a))原创 2021-01-11 15:34:23 · 527 阅读 · 0 评论 -
“orderby”是怎么工作的
“orderby”是怎么工作的假设你要查询城市是“杭州”的所有人名字,并且按照姓名排序返回前1000个人的姓名、年龄。假设这个表的部分定义是这样的:`CREATE TABLE `t` ( `id` int(11) NOT NULL, `city` varchar(16) NOT NULL, `name` varchar(16) NOT NULL, `age` int(11) NOT NULL, `addr` varchar(128) DEFAULT NULL, PRIMARY原创 2021-01-10 22:31:53 · 125 阅读 · 0 评论 -
sqlzoo刷题笔记
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言1 Introduction2 Large Countries3 Per capita GDP4 South America In millions5 France, Germany, Italy6 United7 Two ways to be big8 One or the原创 2021-01-10 19:56:51 · 748 阅读 · 0 评论