mysql 知识整理(待续)
文章目录
- 1:MySQL 索引的数据结构有那些
- 2:MySQL的存储引擎有哪些
- 3:InnoDB 是否支持hash
- 4:扰动函数
- 5:hash表的索引结构
- 6:二叉树,红黑树的索引结构
- 10:最左匹配
- 12:MRR
- 13:FIC
1:MySQL 索引的数据结构有那些
- B 树
- B + 树
- hash 索引
2:MySQL的存储引擎有哪些
show engines;
- innoDB -B +
- MyISAM - B+
- MEMORY - hash
3:InnoDB 是否支持hash
- 支持自适应的hash
- 索引是系统自动帮我们创建的
- 用户是没办法干预的
- InnoDB
- emp.frm 存储的数据的结构
- emp.ibd 存储的实际数据文件 {真实数据文件+ 索引}
- MyISAM
- emp.frm 存储的数据结构
- emp.MYD mydata,实际的数据
- emp.MYI myindex,实际的索引
4:扰动函数
- 16 个位置 ,实际上只需要了最后的四位
- 所以我们要让高位向右移动,散列的更加均匀一些
5:hash表的索引结构
- hash需要将所有的数据文件添加到内存中,比较消耗内存空间
- 如果所有的查询都是等值查询,那么hash确定很快,但是实际工作中用的更多的是范围查询,而不是等值查询,因此,这种hash就不太合适了
- MEMORY存储引擎使用
- 占内存,我不怕
- hash算法比较麻烦,我是用一个比较通用的算法
- 保证尽可能的都是等值查询
6:二叉树,红黑树的索引结构
- 树的深度过深,而造成 I/O 的次数变多,影响数据的读取效率
- AVL 树和 红黑树基本是在基于内存情况才会使用的数据结构
- InnoDB 默认一次取得是 16K 的数据
- 减少 I/O 的次数
- 减少 I/O 的大小
- mysql 中有一个服务层,每次从存储引擎中把数据取出来,在服务层进行筛选之后,返回客户端
10:最左匹配
- 回表
- 使用二级索引,或者是辅助索引的时候
- 先查 name字段的B +树,得到ID 之后
- 再查 主键的 B+ 树
- 索引覆盖
- select * from table where name = ‘jiang’ 需要回表
- select id from table where name = ‘jiang’ 不需要回表
- 最左匹配
- 在组合索引的时候使用,例如name 和 age 建立联合索引
- 1 2 4 走索引
优化器
- CBO
- RBO
12:MRR
- mult_rang read
- 给了一千个ID ,我们可以先进行排序,这样我们就可以进行范围的查询
- 加快速度,不必要一个一个的进行查询
13:FIC
- fast index create
- 插入和删除数据
- 先创建临时的表格,把数据导入到临时表
- 把原始表删除
- 修改临时表的名字
- 给当前添加一个Share锁,不会有创建临时文件的消耗,但是在操作源文件的时候,如果此时有人发起DML操作,就会造成数据的不一致现象。所以读写是没有问题的,但是在DML还是有问题
mysql 知识整理(待续)相关推荐
- mysql知识整理_mysql知识点
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库.用户通过查询来检索数据库中的数据,而查询是一个用 ...
- mysql知识整理_Mysql知识点整理
索引相关 索引类型 主键索引:数据列不允许重复,不允许为NULL.一个表只能有一个主键索引.InnoDB的主键索引为聚簇索引,而MyISAM的主键索引为非聚簇索引. 创建:ALTER TABLE ta ...
- mysql子查询查询子字段_MySQL知识整理7.4—子查询
数据科学探路者:MySQL知识整理7.3-连接查询zhuanlan.zhihu.com 四.子查询 什么是子查询? 当一个查询是另一个查询的条件时,称之为子查询.子查询可以使用几个简单命令构造功能强 ...
- mysql case默认_MySQL知识整理10.1—存储过程和函数
数据科学探路者:MySQL知识整理9-索引zhuanlan.zhihu.com 一.什么是存储过程? 简单的说,存储过程是一条或者多条SQL语句的集合,可视为批文件,但是其作用不限于批处理. 我们常 ...
- MySQL语言的算法_MySQL知识整理
写在前面的话:秋招来临,博主对MySQL知识进行了整理,全文包括数据库优化和数据库基础两部分 数据库优化 1.优化的目的 [1] 避免页面访问的出错(5xx错误:慢查询无法加载:阻塞无法提交) ...
- MySQL索引相关知识整理学习
MySQL索引相关知识整理学习 前言 一.MySQL索引 哈希索引 B+树索引 B+树的优点 聚簇索引 非聚簇索引 聚簇索引和非聚簇索引的特点及区别: 二.特殊类型的索引 1.覆盖索引 2.联合索引 ...
- MYSQL数据库常用知识整理
为什么80%的码农都做不了架构师?>>> MYSQL数据库常用知识整理 什么是MYSQL MYSQL的特性 MYSQL存储引擎的分类以及数据文件的介绍 MYSQL赋权 MYSQ ...
- Python介绍与特点(自学python知识整理)
Python介绍与特点(自学python知识整理) Python 简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计: Python 是一种解释 ...
- centos7创建asm磁盘_Oracle ASM 磁盘组基础知识整理(收藏版)
为什么要写这么一篇基础知识呢?还是有那么一点点原因的,不是胡编乱造还真是有真实存在的事件的,前两周里因一套生产环境数据库磁盘不足无法对其进行表空间扩容,需要向存储岗申请存储资源,当存储岗划好资源加完存 ...
最新文章
- 获取服务端https证书
- goaheadlinux移植_Linux下goahead3.3.6的移植以及文件上传下载示例
- 学计算机专业的毕业证,对于计算机专业的同学来说,学历真的那么重要吗?
- 【响应式Web前端设计】CSS后代选择器和子代选择器
- 基础知识的学习,来自十年程序员的经验分享
- matlab 6.5 设计数字滤波器
- Linux学习笔记(二)
- github上只下载部分文件
- docker登录mysql数据库_Docker下搭建mysql数据库
- 本地项目怎么推送到码云_如何将本地项目放到码云(gitee)上
- JSONHelper JSON帮助类
- Educational Codeforces Round 51: F. The Shortest Statement(最短路+LCA)
- 学习随笔#13 模型预测控制(MPC)
- mosquitto无法连接
- 2019中南大学考研计算机考试,2019年中南大学计算机考研经验分享(复试+真题)...
- linux基因组文件,科学网-NGS基础 - 参考基因组和基因注释文件-陈同的博文
- 那些年,我们常见的那些人
- hcs12 microcontroller 笔记
- PCIe系列专题之五:PCIe总线电源管理
- vue中props传值给data时-props有值但data却是空的问题