mysql索引原理是什么?-mysql教程-学派吧

本篇文章主要给大家介绍mysql索引原理,希望对需要的朋友有所帮助!(相关推荐:《mysql教程》)

mysql索引原理是什么?-mysql教程-学派吧

索引的目的

索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词看一遍才能找到你想要的,如果我想找到m开头的单词呢?或者ze开头的单词呢?是不是觉得如果没有索引,这个事情根本无法完成?

mysql索引原理

除了词典,生活中随处可见索引的例子,如火车站的车次表、图书的目录等。它们的原理都是一样的,通过不断的缩小想要获得数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是我们总是通过同一种查找方式来锁定数据。

数据库也是一样,但显然要复杂许多,因为不仅面临着等值查询,还有范围查询(>、<、between、in)、模糊查询(like)、并集查询(or)等等。数据库应该选择怎么样的方式来应对所有的问题呢?

我们回想字典的例子,能不能把数据分成段,然后分段查询呢?最简单的如果1000条数据,1到100分成第一段,101到200分成第二段,201到300分成第三段……这样查第250条数据,只要找第三段就可以了,一下子去除了90%的无效数据。

但如果是1千万的记录呢,分成几段比较好?稍有算法基础的同学会想到搜索树,其平均复杂度是lgN,具有不错的查询性能。但这里我们忽略了一个关键的问题,复杂度模型是基于每次相同的操作成本来考虑的,数据库实现比较复杂,数据保存在磁盘上,而为了提高性能,每次又可以把部分数据读入内存来计算,因为我们知道访问磁盘的成本大概是访问内存的十万倍左右,所以简单的搜索树难以满足复杂的应用场景。

以上就是mysql索引原理是什么?的详细内容,更多请关注php中文网其它相关文章!

主题测试文章,只做测试使用。发布者:云大使,转转请注明出处:https://www.xp8.net/data/3421.html

(0)
打赏 微信扫一扫 微信扫一扫
云大使的头像云大使
上一篇 2019年4月9日 下午8:55
下一篇 2019年4月9日 下午8:56

相关推荐

  • mysql禁止外部访问解决方案-mysql教程

    本文主要讲述了当mysql禁止外部访问的解决方案,具有一定的收藏价值,有需要的朋友了解一下吧。 1.在端口已经开放的情况下,ubuntu mysql 3306允许远程访问vim /etc/mysql/mysql.conf.d/mysqld.cnf注释#bind-address = 127.0.0.1 2.给用户授权允许远程访问:grant all privi…

    数据库运维 2019年4月24日
    2.9K00
  • 在MySQL中如何使用LOAD_FILE()函数?(代码示例)-mysql教程-学派吧

    在MySQL中,LOAD_FILE()函数读取一个文件并将其内容作为字符串返回。 语法 LOAD_FILE(file_name) 其中file_name是文件的完整路径。 下面是我从一个文件中选择内容的示例: SELECT LOAD_FILE('/data/test.txt') AS Result; 结果: +————–…

    数据库运维 2019年4月9日
    3.2K00
  • MySQL如何导入格式化数据-mysql教程-学派吧

    在MySQL中如何导入格式化数据?本篇文章就来给大家介绍MySQL导入格式化数据的方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 在有些场景下,我们需要把一批特定格式的数据导入到mysql数据库中,做法有很多,使用shell脚本、python都可以,今天来介绍两个更便捷的命令,mysqlimport 和 load data mysqli…

    数据库运维 2019年4月9日
    2.7K00
  • 巧用Navicat for MySQL的快捷键-navicat教程-学派吧

    本文章给大家带来的内容是关于巧用Navicat for MySQL的快捷键,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 巧妙地使用 Navicat for MySQL 快捷键,可以大大提高工作效率,本篇经验将分类介绍 Navicat for MySQL 快捷键。 ctrl+q 打开查询窗口 ctrl+/ 注释sql语句 ctrl+shif…

    数据库运维 2018年11月26日
    4.3K00
  • MySQL用Navicat导出数据字典的方法-navicat教程

    本篇文章给大家带来的内容是关于MySQL用Navicat导出数据字典的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 数据字典是一名DBA需要维护的重要内容,有人喜欢用excel来维护,本人更喜欢直接在生产库上进行维护,这样可以保证生产库中的注释都是最新的内容,为了便于生产库数据字典的流通性,会采用excel的方式来记录,本文记录下…

    数据库运维 2018年11月26日
    2.8K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

工作时间:周一至周五,9:30-18:30,节假日休息

添加微信
添加微信
分享本页
返回顶部
---------官方优惠叠加渠道折扣:通过我们购买腾讯云/阿里云,价格更低,服务更优。更有专业配置指导与服务。微信同步:18838889666----