![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mysql
文章平均质量分 84
打分几楼MOTO
这个作者很懒,什么都没留下…
展开
-
MySQL—update语句执行流程
update语句执行流程框架图。update执行流程简图。原创 2022-07-18 11:10:59 · 1735 阅读 · 0 评论 -
MVCC底层原理与Mysql日志讲解
Mysql在可重复读隔离级别下如何保证事务较高的隔离性,我们上节课给大家演示过,同样的sql查询语句在一个事务里多次执行查询结果相同,就算其它事务对数据有修改也不会影响当前事务sql语句的查询结果。这个隔离性就是靠MVCC(Multi-Vesion Concurency Controller)机制来保证的,对一行数据的读和写两个操作默认是不会通过加锁互斥来保证隔离性,避免了频繁加锁互斥,而在串行化隔离级别为了保证较高的隔离性是通过将所有操作加锁互斥来实现的。Mysql在读已提交和可重复读隔离级别下都实现了M原创 2022-07-08 12:28:02 · 281 阅读 · 0 评论 -
深入理解Mysql锁与事务隔离级别
Mysql事务及ACID特性详解概述事务及其ACID属性并发事务处理带来的问题Mysql事务隔离级别详解Mysql事务隔离级别详解Mysql锁机制详解锁详解锁分类表锁行锁间隙锁(Gap Lock) 临键锁(Next-key Locks)无索引行锁会升级为表锁结论行锁分析查看INFORMATION_ SCHEMA系统库锁相关数据表死锁锁优化建议行锁与事务隔离级别案例分析读未提交读已提交可重复读可串行化 我们的数据库一般都会并发执行多个事务, 多个事务可能会并发的对相同的一批数据进行增删改查操作, 可能就会导致原创 2022-07-07 18:00:57 · 341 阅读 · 0 评论 -
Mysql索引优化实战二
分页查询优化详解常见的分页场景优化技巧根据自增且连续的主键排序的分页查询根据非主键字段排序的分页查询 表JOIN关联原理详解及优化mysql的表关联常见有两种算法嵌套循环连接Nested-Loop Join 算法基于块的嵌套循环连接Block Nested-Loop Join算法对于关联sql的优化in和exsits优化表COUNT查询优化常见优化方式查询mysql自己维护的总行数show table status将总数维护到Redis里增加数据库计数表阿里巴巴MYSQL规范解读索引规约SQL语句MYSQL原创 2022-07-07 14:53:01 · 214 阅读 · 0 评论 -
Mysql索引优化实战一
综合案例联合索引第一个字段用范围不会走索引强制走索引覆盖索引优化 in和or在表数据量比较大的情况下会走索引,在表记录不多的情况下会选择全表扫描 like kk%不管表数据量大小都会走索引 索引下推为什么范围查找Mysql没有用索引下推优化Mysql如何选择合适的索引常见sql深入优化Order bycase1 case2case3case4 case5 case6 case7case8 优化总结Using filesort文件排序原理详解filesort文件排序方式如何选择使用哪种方式 索引设计原则代码原创 2022-07-06 18:23:14 · 550 阅读 · 0 评论 -
Explain
Explain详解select_typetype列possible_keys和keypossible_keyskeykey_len列key_len的计算规则ref列rows列Extra列Explain使用全值匹配不在索引类上做任何操作(计算,函数(自动or手动)类型转换),会导致索引失效而转向全表扫描存储引擎不能使用索引中范围条件右边的列尽量使用覆盖查询(只访问索引的查询(索引列包含查询列)),减少select*语句mysq在使用不等于(! = 或者)的时候无法使用索引会导致全表扫描is null,is..原创 2022-07-06 10:01:02 · 112 阅读 · 0 评论 -
索引数据结构详解
索引数据结构二叉树红黑树HashB-TreeB+Tree存储引擎索引实现MylSAM引擎(非聚集索引)InnoDB索引实现(聚集)联合索引介绍编辑索引是帮助Mysql高效获取数据的排好序的数据结构索引也是存储在磁盘上如果没有建立索引会一条一条的查询,查询一条会跟磁盘做一次IO操作见下图,以Col2为索引建立二叉树,每一个节点包含一个key(值),value(索引行所在磁盘地址)二叉树红黑树Hash表B-TreeMysql底层并没有使用二叉树:因为如果数据比较极端的话,会形成一张链表,并没有降低查询Mysq原创 2022-07-05 11:57:54 · 378 阅读 · 0 评论 -
Mysql-操作json
表结构CREATETABLE`jsonuse`(`data`jsonDEFAULTNULL,`id`intDEFAULTNULL)ENGINE=InnoDBDEFAULTCHARSET=utf8mb3JSON_OBJECT([KEY, val[, KEY, val] ...])计算键值对列表(可能为空),并返回包含这些键值对的JSON对象。如果任何键名为NULL或参数为奇数(JSON_OBJECT里面的参数要为偶数),则会发生错误。INSE...原创 2022-02-11 15:44:57 · 656 阅读 · 0 评论 -
表属性设置为null会面临的麻烦
目录1.为什么很多人用null???2.问题纠正3.解决办法:1.为什么很多人用null??? 1.Null是默认的行为,如果不指定列字段是not null,那么为null 2.认为null是一种优化行为,不占存储空间 3.Null属性非常方便,sql语句或者代码不需要额外的填充或者判断2.问题纠正Null的长度不是0;Null参与的查询使用的是 is或者 is not;查询语句(使用了!=或者=)where tw...原创 2022-02-08 18:09:25 · 205 阅读 · 0 评论 -
mysql ---结合案例,优化查询语句及使用not in
问题:编写一个SQL查询,报告2019年春季才售出的产品。即仅在2019-01-01至2019-03-31 之间出售的商品。 Product table:product_id product_name unit_price 1 S8 1000 2 G4 800 3 iPhone 1400 Sales tableseller_id product_id buyer_id sale_date quantity原创 2022-02-08 17:08:22 · 323 阅读 · 0 评论 -
Mysql-变量的使用
窗口函数可以点击此链接可以查看变量使用的易错点 对于SET,可以使用=或:=作为分配符 使用SELECT定义用户变量只能使用:=作为分配符(因为在非SET语句中 = 被视为一个‘比较操作符’. 通过变量和if语句实现窗口函数(1):dense_rank()SELECT salary, rk AS `RANK`FROM ( SELECT salary, IF ----如果@pres和salary相等,则@cur...原创 2022-01-28 15:31:40 · 1066 阅读 · 0 评论 -
Mysql-各种函数
目录聚合函数数学函数字符串函数日期函数控制流函数窗口函数序号函数分布函数前后函数头尾函数其他函数开窗聚合函数聚合函数不介绍sum,avg,min...... group_concat()函数首先根据group by指定的列进行分组,并且用分隔符分割,将同一个分组中的值连接起来,返回一个字符串结果 格式 group_concat([distinct] 字段名 [order by 排序字段 asc/desc] [separato原创 2022-01-14 19:38:51 · 467 阅读 · 0 评论 -
Mysql-多表操作
目录mysql执行sql顺序多表关系外键约束多表联合查询子查询表自联mysql执行sql顺序1、FROM table1 left join table2 on 将table1和table2中的数据产生笛卡尔积,生成Temp12、JOIN table2 所以先是确定表,再确定关联条件3、ON table1.column = table2.columu 确定表的绑定条件 由Temp1产生中间表Temp24、WHERE 对中间表Temp2产生的结果进行过滤 产...原创 2022-01-14 11:11:40 · 218 阅读 · 0 评论 -
Mysql数据库操作基本操作-DQL-正则表达式
目录介绍格式Demo介绍正则表达式(regular expression)描述了一种字符串匹配的规则,正则表达式本身就是一个字符串,使用这个字符串来描述,定义匹配规则,匹配一系列符合某个句法规则的字符串.在开发中,正则表达式通常用来检索,替换那些符合某个规则的文本.Mysql通过REGEXP关键字支持正则表达式进行字符串匹配格式 描述 ^ 匹配输入字符串的开始位置(是否以某一个字符开头) $ 匹配输入字符串的结束位置...原创 2022-01-09 14:55:23 · 390 阅读 · 0 评论