mysql
文章平均质量分 93
假装懂编程
vx find 假装懂编程
展开
-
MySQL join没用到索引,跪了~
MySQL Join 你用过吗?你知道其中的原理吗?原创 2022-01-26 09:08:16 · 4618 阅读 · 1 评论 -
小心陷入MySQL索引的坑
你可能会遇到这样的情况:这个字段我需不需要加索引?对于这个问题,我们常用的判断手段就是:查询会不会用到这个字段,如果这个字段经常在查询的条件中,我们可能会考虑加个索引。但是如果只根据这个条件判断,你可能会加了一个错误的索引原创 2021-11-19 15:09:21 · 1853 阅读 · 0 评论 -
你真的了解MySQL的order by吗
排序这个词,我的第一感觉是几乎所有App都有排序的地方,淘宝商品有按照购买时间的排序、B站的评论有按照热度排序的...,当然我们今天说的并不是大数据下该如何优雅的排序,如何提升排序性能的问题,我们说一说MySQL中的排序。对于MySQL,一说到排序,你第一时间想到的是什么?关键字order by?order by的字段最好有索引?叶子结点已经是顺序的?还是说尽量不要在MySQL内部排序?事情的起因现在假设有一张用户的朋友表:CREATETABLE`user`(`id`int(...原创 2021-11-09 09:21:28 · 5314 阅读 · 10 评论 -
一文搞懂MySQL持久化和回滚
redo log事务的支持是数据库区分文件系统的重要特征之一,事务的四大特性:原子性:所有的操作要么都做,要么都不做,不可分割。 一致性:数据库从一种状态变成另一种状态的的结果最终是一致的,比如A给B转账500,A最终少了500,B最终多了500,但是A+B的值始终没变。 隔离性:事务和事务之前相互隔离,互不干扰。 持久性:事务一旦提交,它对数据的变更是永久性的。本篇文章主要说说持久性相关的知识。当我们在事务中更新一条记录的时候,比如:update user set age=11原创 2021-10-28 09:09:43 · 3947 阅读 · 9 评论 -
肝文-MySQL面试小抄
使用覆盖索引减少IOmysql的索引类型主要分为聚集索引和非聚集索引,通过聚集索引可以获取到整行数据,而通过非聚集索引只能获得主键id和当前字段。当我们要查询的字段就是非聚集索引叶子含有的字段(primary key+field),那么就不需要回表查询更多的字段,这就是覆盖索引。# name是索引字段1. SELECT id,name from user WHERE name='假装懂编程'#不需要回表2. SELECT id,name,age from user WHERE name='..原创 2021-10-19 21:12:17 · 1758 阅读 · 6 评论 -
一文搞懂锁知识
一位风尘仆仆的男子走了过来,对我说:小伙子,我看你简历上写的精通mysql,那我就问问你mysql的知识吧!我:好的(千万别多问,千万别多问~~)面试官:对mysql锁了解的多吗?我:还行(其实就是很好)。面试官:那好,那我接下来主要问锁相关的知识我:好的好的(放马过来吧,我也就是客气一下。)面试官: mysql支持哪些级别的锁?我:支持库锁、表锁、行锁。面试官:那先说说库锁吧,锁库有几种方式?我:两种,分别是FTWRL(Flush tables with read原创 2021-10-09 08:33:45 · 9307 阅读 · 31 评论 -
一个简单的删除,我发现这么多知识...
删除并不是真正的删除熟悉mysql innodb存储引擎的同学应该知道,当我们执行delete的时候,数据并没有被真正的删除,只是对应数据的删除标识deleteMark被打开了,这样每次执行查询的时候,如果发现数据存在但是deleteMark是开启的话,那么依然返回空,因为这个细节,所以经常会出现“我明明删除了数据,为什么空间没释放”的现象。15M7618:46user_info.ibd#删除前15M10416:47user_info.ibd#删除后为什么不直接删...原创 2021-10-08 10:43:50 · 11448 阅读 · 13 评论