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

相关推荐

  • 如何在Mac上安装MySQL?-mysql教程-学派吧

    Oracle的MySQL是一个流行的基于结构化查询语言(SQL)的开源关系数据库管理系统。它经常与PHP一起使用,以增强网站的功能。PHP预装在Mac电脑上,而MySQL没有。 当您创建和测试需要MySQL数据库的软件或网站时,在您的计算机上安装MySQL非常方便。在Mac上安装MySQL比您预期的要容易,特别是如果您使用本机安装包而不是TAR包,这需要在终…

    数据库运维 2019年4月9日
    1.9K00
  • mysql的20条优化教程-mysql教程-学派吧

    本篇文章给大家带来的内容是关于mysql的优化总结,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 前言 现如今,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。所以,我整理了MySQL优化的几点建议,希望这些优化技巧对您有用,总结不到的,欢迎大家补充。 SQL执行慢的原因 网络速度慢,内存不足,I/O吞吐量小,磁盘空…

    数据库运维 2018年11月24日
    2.6K00
  • MySQL数据库服务无法启动1067问题及解决方法

    前言 小编今天碰到一个用户跟学派吧反馈说他数据库启动不了,说服务器不知道突然挂机了。服务无法启动 解决方案: 于是开启上网找答案模式,有的说把my.ini或者my.conf中的datadir路径换了,有的则是告诉我把data目录下的ibdata1、ib_logfile1、ib_logfile0等文件删除,天啊,我可没有备份,竟然让我删除ibdata1,这文件…

    2018年9月14日
    4.1K00
  • MySQL MID()函数的用法详解(代码示例)-mysql教程-学派吧

    在MySQL中,MID()函数返回从指定位置开始的子字符串。 MID()和SUBSTR()都是SUBSTRING()的同义词。 基本语法是这样的: MID(str,pos,len) 这里,str是字符串,pos是起始子字符串的位置,len是一个可选参数,它决定从起始位置返回的字符数。 这个函数有几种不同的使用方法,所以完整的语法看起来是这样的: MID(st…

    数据库运维 2019年4月9日
    2.9K00
  • 百万数据下mysql分页问题-mysql教程-

    在开发过程中我们经常会使用分页,核心技术是使用limit进行数据的读取。在使用limit进行分页的测试过程中,得到以下数据: select * from news order by id desc limit 0,10 耗时0.003秒 select * from news order by id desc limit 10000,10 耗时0.058秒 s…

    数据库运维 2019年4月24日
    2.8K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

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

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