文章目录

  • 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 知识整理(待续)相关推荐

  1. mysql知识整理_mysql知识点

    关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库.用户通过查询来检索数据库中的数据,而查询是一个用 ...

  2. mysql知识整理_Mysql知识点整理

    索引相关 索引类型 主键索引:数据列不允许重复,不允许为NULL.一个表只能有一个主键索引.InnoDB的主键索引为聚簇索引,而MyISAM的主键索引为非聚簇索引. 创建:ALTER TABLE ta ...

  3. mysql子查询查询子字段_MySQL知识整理7.4—子查询

    数据科学探路者:MySQL知识整理7.3-连接查询​zhuanlan.zhihu.com 四.子查询 什么是子查询? 当一个查询是另一个查询的条件时,称之为子查询.子查询可以使用几个简单命令构造功能强 ...

  4. mysql case默认_MySQL知识整理10.1—存储过程和函数

    数据科学探路者:MySQL知识整理9-索引​zhuanlan.zhihu.com 一.什么是存储过程? 简单的说,存储过程是一条或者多条SQL语句的集合,可视为批文件,但是其作用不限于批处理. 我们常 ...

  5. MySQL语言的算法_MySQL知识整理

    写在前面的话:秋招来临,博主对MySQL知识进行了整理,全文包括数据库优化和数据库基础两部分 数据库优化 1.优化的目的 [1]     避免页面访问的出错(5xx错误:慢查询无法加载:阻塞无法提交) ...

  6. MySQL索引相关知识整理学习

    MySQL索引相关知识整理学习 前言 一.MySQL索引 哈希索引 B+树索引 B+树的优点 聚簇索引 非聚簇索引 聚簇索引和非聚簇索引的特点及区别: 二.特殊类型的索引 1.覆盖索引 2.联合索引 ...

  7. MYSQL数据库常用知识整理

    为什么80%的码农都做不了架构师?>>>    MYSQL数据库常用知识整理 什么是MYSQL MYSQL的特性 MYSQL存储引擎的分类以及数据文件的介绍 MYSQL赋权 MYSQ ...

  8. Python介绍与特点(自学python知识整理)

    Python介绍与特点(自学python知识整理) Python 简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计: Python 是一种解释 ...

  9. centos7创建asm磁盘_Oracle ASM 磁盘组基础知识整理(收藏版)

    为什么要写这么一篇基础知识呢?还是有那么一点点原因的,不是胡编乱造还真是有真实存在的事件的,前两周里因一套生产环境数据库磁盘不足无法对其进行表空间扩容,需要向存储岗申请存储资源,当存储岗划好资源加完存 ...

最新文章

  1. 获取服务端https证书
  2. goaheadlinux移植_Linux下goahead3.3.6的移植以及文件上传下载示例
  3. 学计算机专业的毕业证,对于计算机专业的同学来说,学历真的那么重要吗?
  4. 【响应式Web前端设计】CSS后代选择器和子代选择器
  5. 基础知识的学习,来自十年程序员的经验分享
  6. matlab 6.5 设计数字滤波器
  7. Linux学习笔记(二)
  8. github上只下载部分文件
  9. docker登录mysql数据库_Docker下搭建mysql数据库
  10. 本地项目怎么推送到码云_如何将本地项目放到码云(gitee)上
  11. JSONHelper JSON帮助类
  12. Educational Codeforces Round 51: F. The Shortest Statement(最短路+LCA)
  13. 学习随笔#13 模型预测控制(MPC)
  14. mosquitto无法连接
  15. 2019中南大学考研计算机考试,2019年中南大学计算机考研经验分享(复试+真题)...
  16. linux基因组文件,科学网-NGS基础 - 参考基因组和基因注释文件-陈同的博文
  17. 那些年,我们常见的那些人
  18. hcs12 microcontroller 笔记
  19. PCIe系列专题之五:PCIe总线电源管理
  20. vue中props传值给data时-props有值但data却是空的问题

热门文章

  1. linux lynx 源码,Lynx字符浏览器移植
  2. rust(54)-字符串
  3. tensorflow随笔-二分法求解一元方程
  4. 【Python】机器学习矩阵运算必学库Numpy首秀!
  5. 【机器学习】一文全览机器学习建模流程(Python代码)
  6. 【CV】目标检测的常用数据处理方法!
  7. 【Python基础】在pandas中利用hdf5高效存储数据
  8. 【ICML 2020】REALM: Retrieval-Augmented Language Model PreTraining
  9. 个性化推荐系统该如何评估,四种不同策略的角度
  10. AJPFX关于代码块的总结