随笔分类 - MySQL
摘要:1、数据准备 学员表插50w条,班级表插1w条 步骤1:建表 CREATE TABLE `class` ( `id` INT ( 11 ) NOT NULL AUTO_INCREMENT, `className` VARCHAR(30) DEFAULT NULL, `address` VARCHAR
阅读全文
摘要:适合建索引的情况 1、字段的数值有唯一性的限制 索引本身可以起到约束的作用,比如唯一索引、主键索引都是可以起到唯一性约束的,因此在我们的数据表中,如果某个字段是唯一性的,就可以直接创建唯一性索引,或者主键索引。这样可以更快速地通过该索引来确定某条记录。 例如,学生表中学号是具有唯一性的字段,为该字段
阅读全文
摘要:1、索引的声明与使用 1.1 索引的分类 MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。 ● 从功能逻辑上说,索引主要有4种,分别是普通索引、唯一索引、主键索引、全文索引。 ● 按照物理实现方式,索引可以分为2种:聚簇索引和非聚簇索引。 ● 按照作用字段个数进行
阅读全文
摘要:MySQL数据结构选择的合理性 从MySQL的角度讲,不得不考虑一个现实问题就是磁盘l0。如果我们能让索引的数据结构尽量减少硬盘的I/O操作,所消耗的时间也就越小。可以说,磁盘的I/0操作次数对索引的使用效率至关重要。 查找都是索引操作,一般来说索引非常大,尤其是关系型数据库,当数据量比较大的时候,
阅读全文
摘要:MyISAM中的索引方案 B树索引适用存储引擎如表所示: 索引/存储引擎 MyISAM InnoDB Memory B-Tree索引 支持 支持 支持 tips MySQL官方只有B+树的概念,B树是国内的叫法,MySQL官方的B树即国内的B+树 即使多个存储引擎支持同一种类型的索引,但是他们的实现
阅读全文
摘要:常见索引概念 索引按照物理实现方式,索引可以分为2种:聚簇(聚集)和非聚簇(非聚集)索引。我们也把非聚集索引称为二级索引或者辅助索引。 1、聚簇索引 聚簇索引并不是一种单独的索引类型,而是一种数据存储方式(所有的用户记录都存储在了叶子节点),也就是所谓的索引即数据,数据即索引。 术语“聚簇”表示数据
阅读全文
摘要:1、InnoDB中索引的推演 1.1索引之前的查找 先看一个精确匹配的例子: SELECT [列名列表] FROM 表名 WHERE 列名 = XXX; 1、在一个数据页中的查找 假设目前表中的记录比较少,所有的记录都可以被存放到一个页中,在查找记录的时候可以根据搜索条件的不同分为两种情况: 以
阅读全文
摘要:数据库缓冲池(buffer pool) InnoDB存储引擎是以页为单位来管理存储空间的,我们进行的增删改查操作其实本质上都是在访问页面(包括读页面、写页面、创建新页面等操作)。而磁盘Ⅳ/o需要消耗的时间很多,而在内存中进行操作,效率则会高很多,为了能让数据表或者索引中的数据随时被我们所用,DBMS
阅读全文
摘要:MySQL8.0中性能查看 -- 查询性能工具是否开启(1为开启) select @@session.profiling ; SET profiling = 1; select * from employees; -- 查看最近一条sql语句性能开销 show profile; SQL执行顺序 SQ
阅读全文
摘要:1.1MySQL中的SQL执行流程 MySQL的查询流程: 1、查询缓存:Server如果在查询缓存中发现了这条SQL语句,就会直接将结果返回给客户端;如果没有,就进入到解析器阶段。需要说明的是,因为查询缓存往往效率不高,所以在MySQL8.0以后就抛弃了这个功能(两个SQL需要完全一样,包括空格、
阅读全文