文档章节

mysql 索引总结----索引算法

s
 sunsyu
发布于 2017/04/13 16:00
字数 457
阅读 7
收藏 0

原文链接
mysql的索引常用的算法是B-tree和B+Tree

如何去学些这两个算法,我看了很多文章列举如下

1.B-Tree定义

http://zh.wikipedia.org/wiki/B%E6%A0%91
2.B-tree动态演示

https://www.cs.usfca.edu/~galles/visualization/BTree.html
Btree差不多了解了,Btree和B+tree几乎一样

3.MySQL索引背后的数据结构及算法原理

http://blog.codinglabs.org/articles/theory-of-mysql-index.html

4.理解MySQL——索引与优化

http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html
5.其他

1、复合索引使用的目的是什么?

:能形成索引覆盖,提高where语句的查询效率

2、一个复合索引是否可以代替多个单一索引?

:复合索引的使用原则是第一个条件应该是复合索引的第一列,依次类推,否则复合索引不会被使用

所以,正常情况下复合索引不能替代多个单一索引

3、在进行哪些类型的查询时,使用复合索引会比较有效?

:如果一个表中的数据在查询时有多个字段总是同时出现则这些字段就可以作为复合索引,形成索引覆盖可以提高查询的效率

4、符合索引中索引列的排序原则是什么?

:复合索引的使用原则是第一个条件应该是复合索引的第一列,依次类推

5、什么情况下不适合使用复合索引?

:建立索引的目的就是帮助查询,如果查寻用不到则索引就没有必要建立,另外如果数据表过大(5w以上)则有些字段(字符型长度超过(40))不适合作为索引,另外如果表是经常需要更新的也不适合做索引

© 著作权归作者所有

s
粉丝 0
博文 109
码字总数 135924
作品 0
深圳
私信 提问
mysql引擎innodb和mysiam,全文索引,又称全文检索

innodb和mysiam引擎的主要区别: MyISAM引擎是MySQL 5.1及之前版本的默认引擎,它的特点是: 1、不支持行锁,读取时对需要读到的所有表加锁,写入时则对表加排它锁 2、不支持事务 3、不支持外...

S三少S
2018/09/04
291
4
财务平台亿级数据量毫秒级查询优化之elasticsearch原理解析

说在前面 财务平台进行分录分表以后,随着数据量的日渐递增,业务人员对账务数据的实时分析响应时间越来越长,体验性慢慢下降,之前我们基于mysql的性能优化做了一遍,可以说基于mysql该做的...

天河2018
2018/07/13
306
0
MySQL——优化ORDER BY语句

本篇文章我们将了解ORDER BY语句的优化,在此之前,你需要对索引有基本的了解,不了解的老少爷们可以先看一下我之前写过的索引相关文章。现在让我们开始吧。 MySQL中的两种排序方式 1.通过有...

CoderFocus
2018/08/17
0
0
Mysql InnoDB 为啥选择B+树索引

前言 Mysql数据库中的常见索引有多种方式,例如Hash索引,B-树索引,B+树索引,但是为啥mysql中默认是采用B+树索引索引呢?下面对这三种索引学习总结一下。B+树到底有啥优势? B-树 B-树,这里...

dragon_tech
03/18
32
0
SQL 常用优化手段总结 - 小技巧

中国有句古话叫做:欲速则不达。在一口气学完了分析 SQL 语句的一般步骤与索引的正确运用方式后小憩片刻。搭配上红茶与白兰地轻松享用下面这些小技巧吧! 系列文章回顾 SQL 常用优化手段总结...

给你添麻烦了
2018/01/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部