
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
大多数软件编程开发程序员在使用MySQL数据库的时候一般都会去设计不同类型的索引结构,而本文我们就通过案例分析来简单了解一下,索引结构设计的作用都有哪些。
索引介绍
MySQL表中存储的数据量非常大,可能有上亿条记录,如果一条条去匹配,就是所谓的全表扫描,会非常的慢。那么有什么办法呢?
想想我们生活中的例子,比如新华字典,我们有一个目录,目录根据拼音排序,内容包含了汉字位于字典中具体的的页码。聪明的你肯定也想到了,我们也可以借鉴这种思想,建立一个MySQL的目录,叫做“索引”。
所以你对“索引”做了抽象和定义:索引(Index)是帮助MySQL高效获取数据的数据结构。
索引是在存储引擎中实现的,因此每种存储引擎的索引不一定完全相同,MySQL有InnoDB、MyISAM、Memory等存储引擎,你想了下,就拿常用的InnoDB作为存储引擎设计索引。
索引设计目标
你现在拼命转动大脑,开始去思考如何设计出这样的一个索引结构。你就在脑子里想,索引设计中需要解决哪些问题,以及要达成什么样的目标。
我要怎么样才能在索引目录(数据结构)中快速找到具体的某条数据记录呢?那么这个数据结构需要有顺序规律,我按照这个规律就可以定位到具体的某条数据。
MySQL中的数据中的记录如何能够快速找到呢?是不是可以将记录进行排序,然后根据二分法快速找到对应的数据记录。
MySQL中架构老大一开始定义数据是按照数据页存放的,每个数据页默认是16kb,每次满了,就会重新有新的一页。我的索引目录数据应该也是放到页中,而且索引的数据尽量少些,这样每页可以放更多的目录信息。
我怎么样才能查询效率高呢?其实每次慢都是慢在磁盘IO上,我再后面设计中一定要减少磁盘IO的访问,越少访问磁盘IO越好。
磁盘中的空间还是不连续的啊,那我还得有个指针去连接下一条记录的位置。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。