一条慢查询会造成什么后果?年轻时,我一直觉得不就是返回数据会慢一些么,用户体验变差?其实远远不止,我经历过几次线上事故,有一次就是由一条SQL慢查询导致的。记得那是一条查询SQL,数据量万级时还保持在0.2秒内,随着某一段时间数据猛增,耗时一度达到了2-3秒!没有命中索引,导致全表扫描。explain 中extra显示:Using where; Using
......
343
0
0
2022-11-18
MyISAM是MySQL5.5版之前默认数据库引擎,也算是老一辈存储引擎代表,由早期的ISAM所改良。虽然性能极佳,但“锁”事过多,导致并发事务处理能力很差。没办法,我天生的结巴,还让我去辩论会??你不要强人“锁”男! 这也是后来InnoDB成功取代MyISAM的重要原因之一。被取代后的MyISAM也迅速淡出开发者视野。 唉,毕竟,第二永远也不会被记住,除非
......
378
0
0
2022-11-18
今天的主人公是我们公司同事侨总,传说中手上有10个比特币的男人。自从比特币大涨以来,养成了几个小爱好:周末听戏坐包厢,骑马酒吧滑雪场。 这不,前两天侨总又双叒叕出来体验面试了,晚上请我烧烤时跟我聊了聊这次有趣的面试经历,真是意犹未尽,趁他回味之余我又吃了十几串儿腰子和羊肉~ 嗯,真香! 对不住,跑题了。。人到中年嘛,保温杯里泡枸杞之余总会。。。 来不及
......
373
0
0
2022-11-18
运算符:!= 和 <>在MySQL中!= 和 <> 的功能一致,在sql92规范中建议是:!=,新的规范中建议为: <>下面查询username为"陈哈哈"以外的用户,以下两条语句的作用一样。SELECT * FROM t_user WHERE username != "陈哈哈";
SELECT * FROM t_use
......
492
0
0
2022-11-18
国庆过后我们客户领导换了,这哥们儿好像特别喜欢看各类统计、报告(过眼瘾?),加了二十多个统计数据报告的需求,就好像报告多就会显得很牛逼一样🙃🙃~ (上线后据我观察操作日志,发现上线后再也没人看报告。。西内!!🔨🔨) 搞得我最近一直在写定时任务,之前我一直是用SpringTask做定时任务的,还得来回调数据库浪费资源效率。机缘巧合让我发现了MySQL的EVEN
......
406
0
0
2022-11-17
CHAR和VARCHAR是MySQL中两种最重要的字符串类型,两者的原理和区别也是面试中高频问题,如果是你,会从哪几个角度去回答这个问题呢?今天,我给大家总结了一下相关知识点,让我们一起回顾一下吧。 ----- 本文描述和假设使用的存储引擎以Innodb和MyISAM为准目录一、CHAR和VARCHAR有哪些区别1、固定长度 & 可变长度2、存储方式
......
412
0
0
2022-11-17
提到MySQL的Insert语句,你肯定不陌生,或许已经张口就来:不就是insert into table values(xxx,xxx,xxx)嘛!没错,但在实战中,根据不同的需求场景,插入操作在语法、执行方式上的用法多种多样。 今天,我来给小伙伴们从这两方面分享一下搬砖心得,如果你有疑问或好的想法,记得在评论区给我留言,我会在搬砖之余和大家一起吃瓜喔~目
......
386
0
0
2022-11-17
自MySQL5.5版本起,主流的索引结构转为B+树。B+树的节点存储索引顺序是从左向右存储,在检索匹配的时候也要满足自左向右匹配。目录一、最左匹配原则的原理二、违背最左原则导致索引失效的情况三、查询优化器偷偷干了哪些事儿四、需要你mark的知识点1、如何通过有序索引排序,避免冗余执行order by2、like 语句的索引问题3、不要在列上进行运算4、索引不
......
431
0
0
2022-11-17
事务回滚机制其实,讨论MySQL的事务回滚机制,也就是在说MySQL的事务原子性是如何实现的(关于事务之前文章中有过简单介绍)。所谓原子性,就是指一个事务是一个不可分割的工作单位,其中的操作要么都做,要么都不做;如果事务中的一个sql语句执行失败,则已执行的语句必须回滚,数据库会退回到事务前的状态。我们可以这么理解,就是说如果事务失败了,那么它对我们的数据库
......
419
0
0
2022-11-16
MySQL8.0允许外部访问一、前置条件:按照https://blog.csdn.net/h996666/article/details/80917268安装完MySQL之后。二、开始修改配置:1,登进MySQL之后,2,输入以下语句,进入mysql库:use mysql
3,更新域属性,’%’表示允许外部访问:update user set host='
......
500
0
0
2022-11-15
基于mysql分布式悲观锁原理悲观锁在库存服务中的应用:在这个过程中我们是使用gorm来完成mysql的分布式悲观锁的核心的代码在这里,该方法就能完成悲观锁了更多关于gorm的学习DB.Clauses(clause.Locking{Strength: "UPDATE"})
完整代码://Sell 扣减库存,涉及事务逻辑,执行的逻辑必须全部成功或者全部失败并
......
670
0
0
2022-11-14
MySQL分布式悲观锁原理:条件FOR UPDATE 仅适用于InnoDB存储引擎,且必须在事务区块(BEGIN/COMMIT)中才能生效。mysql默认情况下每个sql都是单独的一个事务,并且是自动提交事务。测试之前需要设置成非自动提交事务,不然无法模拟并发访问:mysql> select @@autocommit;
+--------------
......
411
0
0
2022-11-14
1.主从复制原理(1)master服务器将数据的改变记录二进制binlog日志,当master上的数据发生改变时,则将其改变写入二进制日志中;(2)slave服务器会在一定时间间隔内对master二进制日志进行探测其是否发生改变,如果发生改变,则开始一个I/OThread请求master二进制事件(3)同时主节点为每个I/O线程启动一个dump线程,用于向其
......
520
0
0
2022-11-14
事务的提交1. 概述要了解事务的提交过程,首先需要对mysql的基本逻辑结构以及一条sql语句的执行过程先有个大概;1.1 mysql 逻辑结构1.2 更新语句的执行过程以简单的更新语句可以知道大概的执行流程如下:从上面我们就可以得出,一个事务是需要以下几个过程的:服务层:连接器:客户端连接服务器,鉴权等等分析器:语法分析优化器:选择索引最后 执行器 操作
......
469
0
0
2022-11-12
为什么需要事务隔离级别数据库不会只服务于一个服务端,肯定会出现多个请求同时落到数据库上,即使是同一个客户端也会并发执行多个事务。并发操作MySQL的同一批数据的时候就有可能出现数据安全问题,主要有脏写、脏读、不可重复读、幻读这些问题。本质上这些问题就是多事务并发的问题,那事务隔离就是为了解决这些问题儿设计的。认识多事务并发问题更新丢失(Lost Update
......
423
0
0
2022-11-12