![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 65
南山黄多多多鱼
钱是王八蛋,我们要尊重梦想。
展开
-
SQL中EXISTS与IN的使用及效率
in 和exists对于以上两种查询条件,in是把外表和内表作hash 连接,而exists 是对外表作loop 循环,每次loop 循环再对内表进行查询。一直以来认为exists 比in 效率高的说法是不准确的。在不同的情况下,exists与in的性能各有优缺项,如果查询的两个表大小相当,那么用in 和exists 差别不大。下面以实例来进行说明:select * from A where id in(select id from B);select * from A where ..原创 2021-01-31 23:17:45 · 718 阅读 · 2 评论 -
Mysql批量插入百万测试数据
背景:需要做稳定测试,需要我造一千万条测试数据步骤: 1.先建立一张临时表,等把数据刷进去之后,在把表名字更改成真正的表,这样就造数据的时候不会阻碍测试正常测试sql 如下DROP TABLE IF EXISTS `order_pay_detail_1`;#1. 准备表CREATE TABLE `order_pay_detail_1` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', `fee_type`..原创 2021-01-31 22:58:11 · 364 阅读 · 0 评论 -
Sql分析优化工具Soar-Web的简单使用
上一篇记录了安装Soar 和 Soar-web的过程https://blog.csdn.net/qq_35152037/article/details/113099729下面记录一下怎么使用的通过IP+端口访问到如下界面这些按钮和操作不需要多说了,多玩几下就知道了...原创 2021-01-24 23:24:28 · 538 阅读 · 0 评论 -
SQL分析检查工具Soar 和 Soar-web的安装
SQL分析检查工具Soar 和 Soar-web的安装背景 最近开发需要写一些复杂的Sql脚本,但是依赖Explain工具分析SQl还是有很麻烦,于是乎就找到了这个小米开源的SQL分析工具,东西挺好的,可惜的是到2019年就没有维护了。 工具分为两个组件:Soar 和 Soar-web 顾名思义,前者才是核心,后者是后来方便使用开源的一个网页操作版,就类似于 ES 和 kibana 一样,可以直接用Soar上的命令来分析语句,只是看起来没那么直观而已。前置条件...原创 2021-01-24 23:14:37 · 676 阅读 · 0 评论 -
Postgresql和Mysql的区别
一、 PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步,然而很多 MySQL 用户都遇到过Server级的数据库丢失的场景——mysql系统库是MyISAM的,相比之下,PG数据库这方面要好一些。二、任何系统都有它的性能极限,在高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降,而 MySQL 明显...原创 2020-04-12 01:39:56 · 7523 阅读 · 0 评论 -
深入浅出索引-下
在上一篇文章中,我和你介绍了InnoDB索引的数据结构模型,今天我们再继续聊聊跟MySQL索引有关的概念。在开始这篇文章之前,我们先来看一下这个问题:在下面这个表T中,如果我执行 select * from T where k between 3 and 5,需要执行几次树的搜索操作,会扫描多少行?下面是这个表的初始化语句。mysql> create table T (I...原创 2020-04-08 14:10:35 · 180 阅读 · 0 评论 -
深入浅出索引-上
提到数据库索引,我想你并不陌生,在日常工作中会经常接触到。比如某一个SQL查询比较慢,分析完原因之后,你可能就会说“给某个字段加个索引吧”之类的解决方案。但到底什么是索引,索引又是如何工作的呢?今天就让我们一起来聊聊这个话题吧。数据库索引的内容比较多,我分成了上下两篇文章。索引是数据库系统里面最重要的概念之一,所以我希望你能够耐心看完。在后面的实战文章中,我也会经常引用这两篇文章中提到的知识点...原创 2020-04-08 11:33:37 · 211 阅读 · 1 评论 -
一条select查询语句在数据库中经历了什么?
比如,你有个最简单的表,表里只有一个ID字段,在执行下面这个查询语句时:mysql> select * from T where ID=10;我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在MySQL内部的执行过程。所以今天我想和你一起把MySQL拆解一下,看看里面都有哪些“零件”,希望借由这个拆解过程,让你对MySQL有更深入的理解。这样当我们碰到MySQL的一...原创 2020-04-08 09:39:46 · 671 阅读 · 0 评论 -
Mysql的事务隔离,为什么修改了依然看不见
提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转100块钱,而此时你的银行卡只有100块钱。转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作必须保证是一体的,不然等程序查完之后,还没做减法之前,你这100块钱,完全可以借着这个时间差再查一次,然后再给另外一个朋友转账,如果银行这么整,不就乱了么?这时就要用...原创 2020-04-06 23:44:02 · 404 阅读 · 0 评论 -
一条update更新语句是如何执行的
在平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个ID字段,在执行下面这个查询语句时:mysql> select * from T where ID=10;我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在MySQL内部的执行过程。所以今天我想和你一起把MySQL拆解一下,看看里面都有哪些“零件”,希望借由这个拆解过程,让你对MySQ...原创 2020-04-06 23:32:32 · 1935 阅读 · 2 评论 -
如何优化sql,效率最高,SQL索引优化
索引概念和作用索引是一种使记录有序化的技术,它可以指定按某 列/某几列预先排序,从而大大提高查询速度(类似 于汉语词典中按照拼音或者笔画查找)。索引的主要作用是加快数据查找速度,提高数据库 的性能。MySQL索引类型从物理存储角度上,索引可以分为聚集索引和非聚 集索引。1.聚集索引(Clustered Index)聚集索引决定数据在磁盘上的物理排序,-个表只 能有一个聚集索引。2.非...原创 2019-12-03 16:34:29 · 706 阅读 · 0 评论 -
大厂在用的分库分表方案-杂记
一、数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。1、IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表。第二种:网络IO...原创 2019-10-20 22:34:51 · 136 阅读 · 0 评论 -
MySQL中datetime和timestamp的区别及使用
转载自iVictor,原文链接:http://www.cnblogs.com/ivictor/p/5028368.html一、MySQL中如何表示当前时间?其实,表达方式还是蛮多的,汇总如下:CURRENT_TIMESTAMPCURRENT_TIMESTAMP()NOW()LOCALTIMELOCALTIME()LOCALTIMESTAMPLOCALTIMESTAMP()二、关...原创 2019-05-13 13:34:36 · 26307 阅读 · 3 评论 -
Linux上mysql的安装---tar压缩包格式的
检查是否已安装,grep的-i选项表示匹配时忽略大小写[root@localhost JavaEE]#rpm -qa|grep -i mysqlmysql-libs-5.1.61-4.el6.x86_64可见已经安装了库文件,应该先卸载****,不然会出现覆盖错误。注意卸:载时使用了–nodeps选项,忽略了依赖关系:[root@localhost JavaEE]#rpm -e ...原创 2019-04-11 15:26:37 · 345 阅读 · 0 评论 -
解决Linux上Mysql服务器异常挂掉的一次经历
2018-12-25 14:49:57 25873 [Note] Plugin ‘FEDERATED’ is disabled.2018-12-25 14:49:57 25873 [Note] InnoDB: Using atomics to ref count buffer pool pages2018-12-25 14:49:57 25873 [Note] InnoDB: The Inno...原创 2018-12-25 15:22:28 · 5667 阅读 · 0 评论 -
SQL -优化部分总结+Mysql5.6性能优化
1。你必须选择记录条数最少的表作为基础表.(from 是从前往后检索的,所以要最少记录的表放在最前面)2。采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些 可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。同时在链接的表中能过滤的就应该先进行过滤。(where是从后往前检索,所以能过滤最多数据的条件应放到最后。)3。SELE...原创 2018-12-10 16:26:02 · 692 阅读 · 0 评论 -
初步认识 行级锁
行级锁是MySQL中粒度最小的一种锁,他能大大减少数据库操作的冲突。但是粒度越小,实现的成本也越高。MYISAM引擎只支持表级锁,而INNODB引擎能够支持行级锁,下面的内容也是针对INNODB行级锁展开的。INNODB的行级锁有共享锁(S LOCK)和排他锁(X LOCK)两种。共享锁允许事物读一行记录,不允许任何线程对该行记录进行修改。排他锁允许当前事物删除或更新一行记录,其他线程不能操作该...转载 2018-11-24 23:06:42 · 1817 阅读 · 0 评论 -
数据库分片--Mycat的简单使用
什么是数据库分片一、海量数据的存储问题随着互联网的发展,数据的量级也是指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要...原创 2018-03-24 21:21:50 · 8963 阅读 · 3 评论 -
在Mysql查询的结果中添加每一列的序列号
实现在查询的结果集前添加一列自然序列原创 2018-03-15 17:52:25 · 575 阅读 · 0 评论