
mysql
fengzhuzhigu
这个作者很懒,什么都没留下…
展开
-
回表操作是啥
原文原创 2024-10-18 15:34:08 · 125 阅读 · 0 评论 -
mysql的数据加载到内存的机制(冷热数据、lru算法)
钉钉原创 2022-10-02 19:45:26 · 713 阅读 · 0 评论 -
Mysql基础----MySQL 主从复制
方法原创 2022-09-27 18:03:29 · 283 阅读 · 0 评论 -
GROUP BY与COUNT(也可以换成其他聚合函数)用法详解
ddd原创 2022-09-22 12:07:46 · 454 阅读 · 0 评论 -
一致性hash是什么?有什么优势
翻到的原创 2022-09-22 11:42:29 · 123 阅读 · 0 评论 -
Mysql基础知识----union 和 union all 的区别及使用说明
传参原创 2022-08-01 17:02:22 · 177 阅读 · 0 评论 -
百万级别或以上的数据如何删除
dd原创 2022-07-31 19:07:53 · 1370 阅读 · 0 评论 -
Mysql 中 MyISAM 和 InnoDB 的区别有哪些?
ee原创 2022-07-31 18:13:54 · 398 阅读 · 0 评论 -
mysql基础知识----MySQL的binlog有有几种录入格式?分别有什么区别?
ss原创 2022-07-31 18:05:05 · 317 阅读 · 0 评论 -
mysql基础知识----据库三大范式是什么
钉钉原创 2022-07-31 17:04:23 · 2095 阅读 · 0 评论 -
mysql基础知识----单表访问方法
mysql原创 2022-07-29 20:43:34 · 268 阅读 · 0 评论 -
mysql基础知识----redo/undo/binlog日志
数据库通常借助⽇志来实现事务,常见的有undo log、redo log,undo/redo log都能保证事务特性,undolog实现事务原⼦性,redolog实现事务的持久性。为了最⼤程度避免数据写⼊时io瓶颈带来的性能问题,MySQL采⽤了这样⼀种缓存机制:当query修改数据库内数据时,InnoDB先将该数据从磁盘读取到内存中,修改内存中的数据拷贝,并将该修改⾏为持久化到磁盘上的事务⽇志(先写redo log buffer,再定期批量写⼊),⽽不是每次都直接将修改过的数据记录到硬盘内,等事务原创 2022-05-18 11:49:23 · 2860 阅读 · 0 评论 -
mysql基础知识----锁升级
InnoDB中根据页的组织形式进行锁管理,并使用位图记录锁信息。n_bits变量表示位图占用的字节数,它后面紧跟着一个bitmap,bitmap占用的字节为:1 + (nbits-1)/8,bitmap中的每一位标识对应的行记录是否加锁。因此,lock_rec_struct占用的实际存储空间为:sizeof(lock_rec_struct) + 1 + (nbits-1)/8。比较好的文章...原创 2022-03-11 17:00:08 · 737 阅读 · 0 评论 -
MySQL 执行计划中Extra(Using where,Using index,Using index condition,Using index,Using where)的浅析
原文链接原创 2020-10-25 21:13:14 · 188 阅读 · 0 评论 -
乐观锁、悲观锁、间隙锁
原文链接原创 2020-09-09 22:53:38 · 152 阅读 · 0 评论 -
MVCC讲的比较好的
原文链接原创 2020-09-07 21:17:47 · 166 阅读 · 0 评论 -
mysql Hash索引和BTree索引区别
Hash仅支持=、>、>=、<、<=、between。BTree可以支持like模糊查询索引是帮助mysql获取数据的数据结构。最常见的索引是Btree索引和Hash索引。不同的引擎对于索引有不同的支持:Innodb和MyISAM默认的索引是Btree索引;而Mermory默认的索引是Hash索引。我们在mysql中常用两种索引算法BTree和Hash,两种算法检索方式不一样,对查询的作用也不一样。一、BTreeBTree索引是最常用的mysql数据库索引算法,因为它不仅可原创 2020-05-09 09:14:21 · 205 阅读 · 0 评论 -
Explain的理解
https://blog.youkuaiyun.com/why15732625998/article/details/80388236转载 2020-05-05 09:20:01 · 171 阅读 · 0 评论 -
什么是索引?Mysql目前主要的几种索引类型
一、索引MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。创建索引时,你需要确保该索引是应用...原创 2020-04-21 09:33:30 · 1235 阅读 · 1 评论 -
MySQL数据库优化的八种方式
01 选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。同样的...原创 2020-04-08 15:03:13 · 303 阅读 · 1 评论 -
开销、加锁速度、死锁、粒度、并发性能
开销、加锁速度、死锁、粒度、并发性能–表锁:开销小,加锁快,不会出现死锁,锁定粒度大,发生锁冲突概率高,并发度低–行锁:开销大,加锁慢,会出现死锁,锁定粒度小,发生锁冲突概率低,并发度高–页锁:介于行锁和表锁之间,会出现死锁,并发度一般表锁更适用于以查询为主,只有少量按索引条件更新数据的应用;行锁更适用于有大量按索引条件并发更新少量不同数据,同时又有并发查询的应用...原创 2020-04-08 10:27:34 · 954 阅读 · 0 评论 -
MySQL Explain详解
在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略...原创 2020-04-08 10:00:07 · 191 阅读 · 0 评论 -
不同的存储引擎支持的索引类型
#我们可以在创建上述索引的时候,为其指定索引类型,分两类hash类型的索引:查询单条快,范围查询慢btree类型的索引:b+树,层数越多,数据量指数级增长(我们就用它,因为innodb默认支持它)#不同的存储引擎支持的索引类型也不一样InnoDB 支持事务,支持行级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;MyISAM 不支持事务,支持表级别锁定,支...原创 2020-04-08 09:30:43 · 440 阅读 · 1 评论 -
为什么B+树适合作为索引的结构
为什么平衡二叉树也不适合作为索引之前说了平衡树的查找时间复杂度是O(log2N),已经很不错了,但还是不适合作为索引结构。那么肯定是有一种更适合作为索引的数据结构。那么这个更适合作为索引的数据结构,难道是查找的时间复杂度更低吗?并不是。这种作为索引的数据结构的查找的时间复杂度也近似O(log2N)。那为什么平衡二叉树不适合作为索引呢?索引是存在于索引文件中,是存在于磁盘中的。因为索引通常是很...原创 2020-04-07 20:11:47 · 247 阅读 · 0 评论 -
脏读、重复读、幻读;
(1)脏读出现原因:修改数据的同时可以读取数据;说明:当事务B对data进行了修改但是未提交事务,此时事务A对data进行读取,并使用事务B修改的数据做业务处理,;案例:(2)重复读出现原因:读取数据的同时可以进行修改;说明:事务A,事务B同时对dataA进行访问,事务A对data进行读取,事务B对data进行修改,当事务A第一次对data进行读取完后事务B提交,此时当事务A第二次读......原创 2020-04-06 23:11:10 · 604 阅读 · 0 评论 -
事务的隔离级别
MySQL四种隔离界别(1)READ_UNCOMMITTED(读未提交):,可读取未提交事务的操作数据,这种情况会出现脏读、重复读、幻读问题;(2)READ_COMMITTED(读提交):一个事务等另一个事务提交之后才可进行读取,解决了脏读问题,但会出现重复读、幻读问题;(3)REPEATABLE_READ(重复读):读取事务开启的时候不能对数据进行修改,可能出现幻读问题;(4)SERIA...原创 2020-04-06 22:57:07 · 154 阅读 · 0 评论 -
MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)
一、MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别?两种存储引擎的大致区别表现在:1.InnoDB支持事务,MyISAM不支持, 这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了。2.MyISAM适合查询以及插入为主的应用。3.InnoDB适合频繁修改以及涉及到安全性较高的应用。4.Inn...原创 2020-04-04 23:24:42 · 1124 阅读 · 0 评论 -
事务四大特性(ACID)原子性、一致性、隔离性、持久性?
原子性(Atomicity):原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏。比如A向B转账,不可能A扣了钱,B却没收到。隔离性(Isolation):隔离性是当多个用户并发访问数据库时,比如操作同一张表时,...原创 2020-04-04 23:09:25 · 471 阅读 · 0 评论 -
.varchar和char的使用场景?
1.char的长度是不可变的,而varchar的长度是可变的。定义一个char[10]和varchar[10]。如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。2.char的存取数度还是要比varchar要快得多,因...原创 2020-04-04 23:01:45 · 2286 阅读 · 0 评论 -
SQL语言分类
SQL语言共分为四大类:数据查询语言DQL数据操纵语言DML数据定义语言DDL数据控制语言DCL。1. 数据查询语言DQL数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECTFROMWHERE2 .数据操纵语言DML数据操纵语言DML主要有三种形式:插入:INSERT更新:UPDATE删除:DELETE3. 数据定义语...原创 2020-04-04 23:00:36 · 125 阅读 · 0 评论 -
内外连接
1、内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)。包括相等联接和自然联接。内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。2、外联接。外联接可以是左向外联接、右向外联接或完整外部联接。在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:1)LEFT JOIN或L...原创 2020-03-22 21:07:13 · 498 阅读 · 0 评论 -
B-树和B+树
原文链接,待整理转载 2020-03-09 15:51:36 · 189 阅读 · 1 评论