MySQL 7年前

Mysql 知识点记录

作者头像 刘宇帅
2193 0
  1. InnoDB MyISAM都是使用B-tree索引,只是两者实现方式不太一样,InnoDB 使用了聚簇索引的数据结构也称为B+tree,而MyISAM并没有。
  2. explain 返回的 Extra 中包含 Using index 即表示使用索引覆盖查询(InnoDb、MyISAM都存在)。
  3. explain 放回的 Extra 中包含 Using where是即表明在存储引擎把数据返回给 MySQL 服务器后再应用 Where 里的条件过滤行。这样就会导致存储引擎返回的数据比实际需要的多,就会导致额外的行被锁。
  4. InnoDB索引中,覆盖查询要考虑主键的情况,即使索引中不包含主键,而查询包含索引中的字段和主键时也是覆盖查询,因为二级索引中主键的值。
  5. InnoDB 使用的是B+tree数据结构。
  6. MyISAM 通过数据的物理位置引用被索引的行。MyISAM 的主键而二级索引实际上是一样的。
  7. InnoDB 主键时聚簇索引,主键索引即使索引也是数据存储结构,行数据存在主键索引的叶子节点上。二级索引叶子节点的值是主键索引。所以如果查询行数据需要两次索引,先索引二级索引再去查询主索引(覆盖索引的情况除外)。
  8. InnoDB 包含一个自适应哈希索引,存储引擎会在访问比较频繁的索引值上生成哈希索引,提高性能。
作者头像

刘宇帅

非著名程序员,全栈开发工程师,长期专注系统开发与架构设计。

提示

功能待开通!


暂无评论~

相关文章

MySQL之创建库

MySQL 创建库语法 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name 创建一个默认的数据库 create database school; 执行结果 mysql> create database school; Query OK, 1 row affecte

MySQL之创建表

创建表 创建学生表 SQL create table if not exists`students` ( `id` int not null auto_increment comment '学生id', `no` char(5) not null comment '学生学号', `name` varchar(128) not null default '' comment '学生姓名', `sex` tinyint not null default 0 comment '0 无 1 女 2 男', `age` tinyint null default

MySQL 技术内幕阅读笔记(0)--- InnoDB 体系结构和存储引擎

MySQL 体系结构 从图我们可以看出,MySQL 有如下几部分组成: 连接池组件 管理服务和工具组件 SQL 接口组件 查询优化组件 优化器组件 缓冲组件 插件式存储引擎 物理文件 需要注意存储引擎是基于表的而不是库,比如我们可以在建表的时候为表指明存储引擎。 MySQL 存储引擎 常见存储引擎 InnoDB MySQL 5.5.8 版本之后的默认存储引擎,事务性,行锁,支持外键。 MyISAM 存储引擎不支持事务、表锁,支持全文索引,主要面对一些 OLAP 数据库应用。MySQL 5.5.6 版本之前的默认存储引擎。 NDB 存储引擎是一个集群存储引擎。 Memory 存储引擎将表

MySQL之删除数据

单表删除语法 DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [[AS] tbl_alias] [PARTITION (partition_name [, partition_name] ...)] [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] 多表删除 DELETE [LOW_PRIORITY] [QUICK] [IGNORE] tbl_name[.*] [, tbl_name[.*]] ... FROM table_r

查看 MySQL 表的大小

information_schema MySQL 自带一个数据库 information_schema ,这个数据库用于记录 MySQL 数据库的基本信息,比如数据库名,数据库的表,表栏的数据类型与访问权限等。 mysql> use information_schema; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql>