当前位置: 首页 > news >正文

淘宝客做连接网站吗百度教育app

淘宝客做连接网站吗,百度教育app,做网站为什么要公安局备案,手机网站建站教育模板下载mysql索引-自学版 1 索引语法2 索引类别3 索引原理磁盘IO与预读索引数据结构 B树B树的前生今世B 树代码(进阶) 4 索引使用策略及优化优化索引的几种方法 索引常见面试题面经实战 1 索引语法 索引的语法:创建、修改、增加、删除等操作&#x…

mysql索引-自学版

  • 1 索引语法
  • 2 索引类别
  • 3 索引原理
    • 磁盘IO与预读
    • 索引数据结构 B+树
      • B+树的前生今世
      • B+ 树代码(进阶)
  • 4 索引使用策略及优化
    • 优化索引的几种方法
  • 索引常见面试题
    • 面经实战

1 索引语法

索引的语法:创建、修改、增加、删除等操作,查询此链接:
菜鸟教程-MySQL 索引
or
Mysql索引(一篇就够le)

2 索引类别

mysql使用较多的存储引擎:InnoDB、MyISAM等,其中InnoDB支持的索引是B+树索引、Hash索引、全文索引,MyISAM使用的是Hash索引。
有关 mysql 所有的索引类型参考官网:
官网

我们可以按照四个角度来分类索引。

按「数据结构」分类:B+tree索引、Hash索引、Full-text索引。
按「物理存储」分类:聚簇索引(主键索引)、二级索引(辅助索引)。
按「字段特性」分类:主键索引、唯一索引、普通索引、前缀索引。
按「字段个数」分类:单列索引、联合索引。

3 索引原理

以下内容(磁盘IO与预读、索引数据结构 B+树、索引使用策略及优化)学自此文章的前半部分内容:
MySQL索引原理及慢查询优化

数据库数据保存在磁盘上,且为了提高性能,每次只将部分数据读入内存,众所周知,访问磁盘的成本是访问内存的十万倍左右,因此,我们需要一种高效的搜索方式。

磁盘IO与预读

为什么访问磁盘的成本很高?访问磁盘的操作有哪几步?它们所用的时间?
考虑到磁盘IO是非常高昂的操作,操作系统做了哪些优化?

索引数据结构 B+树

根据磁盘IO的特点,我们的诉求:每次查找数据时将磁盘的IO次数控制在很小的数量级,最好是常数数量级,于是 B+ 树应运而生。

B+树的前生今世

想要介绍 B+ 树,就不得不提起二叉查找/排序树(BST)、平衡二叉树(AVL) 和 B 树这三种数据结构。B+ 树就是从它们三个演化而来的。见此文章。
二叉树、平衡二叉树、B-Tree、B+Tree 说明

此文章也讲了一系列树的演变,并且还讲解了B树的结点定义、插入、删除等的过程,以及R树,可补充看:
从B树、B+树、B*树谈到R 树

B+ 树代码(进阶)

B+树重要性不用多说,一起来研究B+树的源码

4 索引使用策略及优化

创建索引的几大原则:
1.最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。

2.=和in可以乱序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序,mysql的查询优化器会帮你优化成索引可以识别的形式。

3.尽量选择区分度高的列作为索引,区分度的公式是count(distinct col)/count(*),表示字段不重复的比例,比例越大我们扫描的记录数越少,唯一键的区分度是1,而一些状态、性别字段可能在大数据面前区分度就是0,那可能有人会问,这个比例有什么经验值吗?使用场景不同,这个值也很难确定,一般需要join的字段我们都要求是0.1以上,即平均1条扫描10条记录。

4.索引列不能参与计算,保持列“干净”,比如from_unixtime(create_time) = ’2014-05-29’就不能使用到索引,原因很简单,b+树中存的都是数据表中的字段值,但进行检索时,需要把所有元素都应用函数才能比较,显然成本太大。所以语句应该写成create_time = unix_timestamp(’2014-05-29’)。

5.尽量的扩展索引,不要新建索引。比如表中已经有a的索引,现在要加(a,b)的索引,那么只需要修改原来的索引即可。

优化索引的几种方法

源自:优化索引的几种方法

  1. 前缀索引优化;
  2. 覆盖索引优化;
  3. 主键索引最好是自增的;
  4. 防止索引失效;

索引常见面试题

来自 索引常见面试题

  1. 什么是索引?
  2. 索引的分类?(从四个角度进行分类)
  3. B+树索引原理?查找过程?
  4. 为什么 MySQL InnoDB 选择 B+tree 作为索引的数据结构?(B+树的优势)
  5. 联合索引?
  6. 什么时候需要 / 不需要创建索引?
  7. etc.

面经实战

  1. MySQL的 InnoDB 索引数据结构
  2. mysql中 inoodb 的索引有哪些种类
  3. B+树索引具体是怎么实现的
  4. B树与B+树的区别
  5. 为什么B+树的中间节点不储存数据?
  6. 给一个索引,在有的查询过程中他没有走索引查询,说说你能想到的原因
  7. 聚簇索引、非聚簇索引
  8. 聚簇索引比非聚簇索引的优点
http://www.zhongyajixie.com/news/7072.html

相关文章:

  • 企业oa系统哪个好seo关键词优化技巧
  • 自己建个网站需要多少钱网站怎么建立
  • 做网站首页cdr长沙网站制作公司哪家好
  • 大学网站建设与功能开发百度指数免费查询入口
  • 网站访客北京网络优化
  • 个人电子商务网站建设关键词优化seo优化排名
  • 产品如何推广济南seo网站优化公司
  • 团委网站开发企业网站系统
  • 用织梦做的网站seo优化一般包括哪些
  • 包装盒在线设计网站广州百度seo 网站推广
  • 做网站线上线下价格混乱免费直链平台
  • 开发网站实时监控关键词优化平台有哪些
  • 网站后台管理系统哪个好网站接广告平台
  • 推广普通话的演讲稿百度seo收录
  • 介绍自己做的电影网站西安全网优化
  • 东莞市国外网站建设平台百度识图网页版
  • 黄冈智能网站建设平台百度seo关键词排名查询
  • 做英文网站的心得兰州网络推广优化怎样
  • 江苏网站建设开发网络营销常用的工具和方法
  • 没网站做推广企业自助建站
  • 个人简历自我评价怎么写哈尔滨企业网站seo
  • 互联网站外推广seo网站分析工具
  • 佛山电子商务网站建设市场调研方案范文
  • 阿升网站免费学设计seo网络优化公司
  • 网站模板制作教程视频体验营销案例
  • 淘宝的网站建设情况中国最新军事新闻
  • 都芳漆中文网站建设怎么引流推广
  • app是网站吗长沙百度地图
  • 手机网站菜单长沙关键词排名首页
  • 网站后台数字排版该怎么做今日新闻快讯10条