B+树和B树的区别? 为什么MYSQL要用B+ 树而不用B树 首先B树的所有节点都存储数据信息,而B+ 树的所有数据都存储在叶子节点 B+ 树是在B树的基础上的一种优化,使其更加适合外存储索引结构,InnoDB存储引擎及时B+ 树实现其索引结构 从B树结构图中可以看到每个节点中不仅包含数据的Key值 ...
分类:
数据库 时间:
2020-07-22 01:41:41
阅读次数:
126
mysql的文件系统 1.mysql提供的存储引擎 01)InnoDB 适合数据增删改查 02)MyISAM 存储一些只读的数据 03)MEMORY 支持hash索引 04)ARCHIVE 05)FEDERATED 06)EXAMPLE 07)BLACKHOLE 08)MERGE 09)NDBCLU ...
分类:
数据库 时间:
2020-07-20 22:53:18
阅读次数:
113
1.innodb核心特性 MVCC 事务 行级锁 #innodb支持行级锁,myiasm支持表级锁 热备份 #innodb支持热备,myisam不支持热备 自动故障恢复 Crash Safe Recovery 2.存储引擎相关命令 1.查看当前数据库配置的存储引擎 mysql> SELECT @@d ...
分类:
数据库 时间:
2020-07-20 22:50:45
阅读次数:
92
5.5版本以后出现共享表空间概念 表空间的管理模式的出现是为了数据库的存储更容易扩展 5.6版本中默认的是独立表空间 1.共享表空间(ibdata1) 1.存储的内容 1.系统数据 2.undo redo、undo日志,事务日志 3.临时表 2.概念 1.优点: 可以将表空间分成多个文件存放到各个磁 ...
分类:
数据库 时间:
2020-07-20 22:49:20
阅读次数:
94
以下所有规范会按照【高危】、【强制】、【建议】三个级别进行标注,遵守优先级从高到低。 一、MySQL数据库设计规范 1.1库 【建议】名称尽量简洁明义,能够一眼看出来这个数据库是用来做什么的,库名与应用的名称尽量一直; 【强制】使用名词作为数据库名称,并且只用英文,不用中文拼音; 【强制】如果有多个 ...
分类:
数据库 时间:
2020-07-20 13:04:34
阅读次数:
72
当mysql开启binlog日志时,会存在一个内部XA的问题:事务在存储引擎层redo log的写入和binlog的写入一致性问题。 mysql通过两阶段提交很好的解决了redo log和binlog一致性问题: 第一阶段:innodb prepare, 持有prepare_commit_mutex ...
分类:
数据库 时间:
2020-07-17 01:14:06
阅读次数:
148
1、设计良好的数据库结构,允许部分数据冗余,尽量避免 join 查询,提高效率。 2、选择合适的表字段数据类型和存储引擎,适当的添加索引。 3、MySQL 库主从读写分离。 4、找规律分表,减少单表中的数据量提高查询速度。 5、添加缓存机制,比如 memcached,apc 等。 6、不经常改动的页 ...
分类:
数据库 时间:
2020-07-14 13:47:54
阅读次数:
75
序言 为什么InnoDB不将总数存起来? InnoDB直接count(*)会遍历全表(没有where条件),虽然结果准确,但会导致性能问题。 按照效率排序的话,count(字段)<count(主键id)<count(1)≈count(*),所以建议读者,尽量使用count(*)。 资料 ...
分类:
数据库 时间:
2020-07-12 12:29:06
阅读次数:
60
1.1 数据库的修改操作 l 基本语法 说明: (1) 对数据库的修改主要指的是修改它的字符集(character set),校验规则(collate)和存储引擎(engine) (2) 案例说明: 查看服务器中的数据库,并把其中某一个库的字符集修改为utf8 对表修改存储引擎 ...
分类:
数据库 时间:
2020-07-11 19:32:14
阅读次数:
69
在MySQL5.1之后InnoDB成为了默认的存储引擎,InnoDB和MyISAM的区别: 事务 外键 磁盘中的文件 锁 主键 全文索引 InnoDB 支持事务 支持外键 .frm(表定义) .ibd(索引) 支持表、行(默认)级锁 必须(聚集索引) 5.7版本之前不支持 MyISAM 不支持事务 ...
分类:
数据库 时间:
2020-07-10 23:53:35
阅读次数:
84