mysql
文章平均质量分 72
GeeKiller
生命不息,代码不止!
展开
-
004_Mysql 之索引使用以及优化
也出现 Using index, 但是此时Extra中出现了 Backward index scan,这个代表反向扫描索引,因为在MySQL中我们创建的索引,默认索引的叶子节点是从小到大排序的,而此时我们查询排序时,是从大到小,所以,在扫描时,就是反向扫描,就会出现 Backward index scan。当字段类型为字符串(varchar,text,longtext等)时,有时候需要索引很长的字符串,这会让 索引变得很大,查询时,浪费大量的磁盘IO, 影响查询效率。所以需要针对于age也要建立索引。原创 2023-03-21 16:20:54 · 189 阅读 · 0 评论 -
003_Mysql之事务详解redo log、undolog 和 MVCC
1、不管是redo log 还是 undo log ,都需要在事务提交时写入磁盘文件。不同的加了Log buffer 缓存区,可以将随机读写变为顺序读写。原创 2023-03-18 11:38:01 · 819 阅读 · 0 评论 -
002_InnoDB引擎索引高度计算方法详解
如果B+树高度为3的话,那么这棵B+树的存放总记录数为:根节点指针数*单个叶子节点记录行数 = 16kb/14 * 16kb/14 * 16 大约2kw+数据。如果B+树高度为2的话,那么这棵B+树的存放总记录数为:根节点指针数*单个叶子节点记录行数 = 16kb/14 * 16 大约 1.8w+ 数据。假设主键ID为bigint类型,长度为8字节,而指针大小在InnoDB源码中设置为6字节,这样一共14字节,InnoDB 存储引擎默认一个数据页大小为16kb,非叶子节点存放(key,pointer),原创 2023-03-16 08:52:55 · 144 阅读 · 0 评论 -
001_InnoDB引擎详解
因为前面我们讲到过,hash索引在 进行等值匹配时,一般性能是要高于B+树的,因为hash索引一般只需要一次IO即可,而B+树,可能需 要几次匹配,所以hash索引的效率要高,但是hash索引又不适合做范围查询、模糊匹配等。InnoDB 存储引擎基于磁盘文件存储的,访问物理硬盘和内存,速度相差很大,所以,为了减少磁盘的访问,需要将经常访问的数据加载到缓存池,避免每次都访问磁盘,减少磁盘IO。为了保证页的连续性,• dirty page:脏页,被使用page,数据被修改过,也中数据与磁盘的数据产生了不一致。原创 2023-03-14 14:59:49 · 105 阅读 · 0 评论 -
Linux 是否部署Mysql + Mysql 重启
Linux 是否部署Mysql + Mysql 重启原创 2023-03-07 17:25:31 · 124 阅读 · 1 评论 -
04|索引初始
三种常见的索引模型1、哈希表2、有序数组3、搜索树哈希表一种以键—值,存储的数据结构,哈希的思路很简单,处理步骤就是把值放在数组里,用一个哈希函数把 key 换算成一个确定的位置,然后把 value 放在数组的这个位置。缺点:1、只适用于等值查询,区间查询效率低有序数组优点:1、在等值查询和范围查询中很好2、使用于静态索引引擎缺点:1、在需要更新数据的时候就麻烦了,你往中间插入一个记录就必须得挪动后面所有的记录,成本太高搜索树书中最经典的就是原创 2020-08-24 10:44:28 · 211 阅读 · 0 评论 -
003|事务到底可见不可见
一、事务的理解查看数据库的事务配置:mysql> show variables like 'transaction_isolation';+-----------------------+----------------+| Variable_name | Value |+-----------------------+----------------+| transaction_isolation | READ-COMMITTED |+-----------------原创 2020-08-18 09:21:13 · 442 阅读 · 0 评论 -
002|从更新到日志,数据库是如何恢复半个月前的数据的
日志:重做日志(redo log)和 归档日志(binlog)redo log1、Mysql 有一种技术叫 WAL : Write_Ahead Logging。即:先写日志,再写磁盘。是引擎层的日志2、redo log 的大小是固定,类似一种闭环,其中两个关键点是: write pos :当前记录位置 checkpoint:当前要擦除的位置write pos 和 checkpoint 之间空的部分,就是用来写数据的,一旦当 write pos 追上 checkpoin...原创 2020-08-18 09:20:19 · 257 阅读 · 0 评论 -
001|一条查询sql 的执行过程
连接器可以通过下面的命令,来查看连接状态。show processlistsleep 表示休闲状态,如果太长时间没有使用连接器就会断开,这个时间由:wait_timeout 控制,默认:8小时查缓存1、大部分情况下,可以禁用缓存设置 query_cache_type :DEMAND,默认禁用缓存而对于确定要使用缓存的sql, mysql 也提供了显示的指定方式,SQL_CACHE例如: SELECT SQL_CACHE * FROM tb...原创 2020-08-18 09:19:20 · 123 阅读 · 0 评论