数据库
文章平均质量分 79
AnClient
这个作者很懒,什么都没留下…
展开
-
为什么表数据删掉一般,表文件大小不变?
文章目录13| 为什么表数据删掉一般,表文件大小不变?1. 参数innodb_file_per_table2. 数据删除流程3. 插入数据造成的“空洞”4. 重建表5 Online和inplace13| 为什么表数据删掉一般,表文件大小不变?InnoDB表包含两个部分:表结构定义和数据。在8.0之前,表结构是以.frm为后缀的文件中。MySQL8.0版本,则允许把表结构定义放在数据表中了,因为表结构定义占用的空间很小,所以主要针对的是表数据。1. 参数innodb_file_per_table原创 2022-01-31 20:08:24 · 1472 阅读 · 0 评论 -
between导致索引失效
between导致索引失效发生情景在一个表里会有一个score记录分录,值在1-100之间,这个表查询比较频繁,score会是默认查询条件,所以加了索引,但是score加了索引后还是会走全量查询。发生事件会查询到30多万的量。在创建score索引之后,使用explain发现还是走的全表查询。在添加limit的条件之后,会发现索引成功发生原因表的数据量太大,会让数据库中的优化器进行处理。优化器是在表里面有多个索引的时候,决定使用哪个索引,查询的量太大,导致优化器认为走全表查询原创 2021-06-07 16:44:40 · 3390 阅读 · 0 评论 -
02|MySQL的日志系统
文章目录02|MySQL的日志系统。日志模块redo logbinlog两种日志的不同:执行器和InnoDB引擎在执行简单的update语句时的内部流程.两阶段提交小结02|MySQL的日志系统。日志模块redo logMySQL中的WAL技术,Write-Ahead Logging,它的关键点就是先写日志,再写磁盘。当一条记录需要更新的时候。InnoDB先把记录写道redo log里面。并更新内存。InnoDB引擎会在适当的时候,将这个操作记录更新到磁盘里面,这个更新是在系统空闲的时候原创 2021-04-28 14:41:07 · 202 阅读 · 1 评论 -
MySQL为null会导致的5个问题
文章原文链接: 原文:来源Java中文社群.准备正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信息,如下图所示:插入基础数据-- 如果存在 person 表先删除DROP TABLE IF EXISTS person; -- 创建 person 表,其中 username 字段可为空,并为其设置普通索引CREATE TABLE person ( id INT PRIMARY KEY auto_increment, name VARCHAR(20), mobile VAR转载 2021-03-01 08:54:17 · 431 阅读 · 0 评论