`
luhantu
  • 浏览: 204605 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

mysql索引知识备注

阅读更多

mysql索引分类

Innodb和MyISAM默认的索引是Btree索引;而Mermory默认的索引是Hash索引。

MyISAM叶子节点存储的是表的地址,所以说数据文件和索引文件是分开的,也称为非聚集

Innodb不同,主索引它的叶子节点存储的并不是表的地址,而是数据。辅助索引叶子节点存储的是主键的信息。称为聚集索引。

在利用辅助索引的时候,检索到主键信息,然后再通过主键去主索引中定位表中的数据,所以主键不宜用过长的字段,由于所有的辅助索引都包含主索引,很容易让辅助索引变得庞大。

Btree索引中的最左匹配原则:

Btree是按照从左到右的顺序来建立搜索树的。比如索引是(name,age,sex),会先检查name字段,如果name字段相同再去检查后两个字段。

所以当传进来的是后两个字段的数据(age,sex),因为建立搜索树的时候是按照第一个字段建立的,所以必须根据name字段才能知道下一个字段去哪里查询。

所以传进来的是(name,sex)时,首先会根据name指定搜索方向,但是第二个字段缺失,所以将name字段正确的都找到后,然后才会去匹配sex的数据。

建立索引的规则:

1、利用最左前缀:Mysql会一直向右查找直到遇到范围操作(>,<,like、between)就停止匹配。比如a=1 and b=2 and c>3 and d=6;此时如果建立了(a,b,c,d)索引,那么后面的d索引是完全没有用到,当换成了(a,b,d,c)就可以用到。

2、不能过度索引:在修改表内容的时候,索引必须更新或者重构,所以索引过多时,会消耗更多的时间。

3、尽量扩展索引而不要新建索引

4、最适合的索引的列是出现在where子句中的列或连接子句中指定的列。

5、不同值较少的列不必要建立索引(性别)。

参考:Hash索引和BTree索引

Btree索引详解

分享到:
评论

相关推荐

    MySQL-Front导出mysql数据库结构到pdf、html

    这两种格式都允许你在无需MySQL-Front的情况下查看和理解数据库结构,这对于团队协作和知识转移尤其有价值。 在实际应用中,可能还需要根据项目需求调整导出设置,例如,如果数据库庞大,可能需要分批导出或者仅...

    Mysql中返回一个数据库的所有表名,列名数据类型备注

    以下将详细解释这些知识点及其应用场景。 1. **查询表名** 使用`SHOW DATABASES;`命令可以列出当前MySQL服务器上的所有数据库。若要切换到特定数据库,可以使用`USE 数据库名;`命令。然后,可以使用`SHOW TABLES;`...

    Mysql数据库文档生成工具(含使用说明)

    以下是一些关于MySQL文档生成工具及其相关知识点的详细说明: 1. **数据库设计文档**:数据库设计文档是记录数据库结构、关系、约束和逻辑流程的文件,包括表的定义、字段信息、索引、外键关系等。在项目开发中,它...

    王玄韬《MySQL数据库基础》卷2.doc

    MySQL 数据库基础知识点总结 根据提供的文件信息,总结出以下 MySQL 数据库基础知识点: 一、数据库设计 * 创建数据库和数据库表格设计 * 定义数据库表格结构,包括商品表、商品类别表、订单表等 * 设置数据库...

    通讯录系统mysql数据库设计.zip

    以上就是关于“通讯录系统mysql数据库设计”的主要知识点,涵盖了数据表设计、关系模型、字段选择以及性能优化等多个方面。在实际开发过程中,还需结合业务需求和用户体验,进行更细致的规划和调整。

    PHP+Mysql班费查询课程设计

    在“PHP+Mysql班费查询...通过这个课程设计,学生不仅能掌握PHP和MySQL的基础知识,还能了解到Web应用开发的实践过程,包括需求分析、数据库设计、编程实现、测试和维护等环节,这对他们的专业技能提升具有重要意义。

    mysql导出表的字段和相关属性的步骤方法

    在MySQL数据库管理中,有时我们需要将表的结构信息导出,包括字段名、数据类型、长度、是否可为空、默认值以及备注等属性,以便于文档化或迁移数据。以下是一个详细步骤,指导如何完成这一任务: 1. **确定目标...

    数据库--MySQL1

    本文将深入探讨MySQL数据库的基础知识,尤其是根据提供的标题和描述内容,我们将关注表结构设计和数据库创建。 首先,创建数据库是所有操作的起点。在MySQL中,可以使用`CREATE DATABASE`语句来创建一个新的数据库...

    mysql如何将表结构导出到excel

    INFORMATION_SCHEMA是一个特殊的数据库,它包含了所有数据库的元数据,如表、列、索引等。我们可以查询`INFORMATION_SCHEMA.COLUMNS`表来获取我们需要的数据。 以下是一个SQL查询示例,用于导出表结构到Excel: ``...

    《数据库技术原理与应用》第03章.ppt

    在《数据库技术原理与应用》第03章中,主要探讨了查询与统计的相关知识,特别是排序与索引这两个重要的概念。这些内容对于工程管理、土地资源管理等专业领域尤为重要,因为它们涉及到数据的高效管理和检索。 一、...

    MySQL上机考试题(习题,答案).docx

    ### MySQL上机考试知识点解析 #### 一、题目背景与要求概述 本次MySQL上机考试主要针对的是在事业编制内的专业技术人员,旨在考察其对于MySQL数据库管理系统的掌握程度。题目包含建表、插入数据以及一些基本操作等...

    2021-2022计算机二级等级考试试题及答案No.12338.docx

    - **知识点**: 在 Visual FoxPro 中创建含有备注字段的表及其结构复合索引文件时,系统会自动生成特定扩展名的文件。 - **详细解释**: - **选项 A**: .PJX、.PJT 和 .PRG 分别对应项目文件、项目模板文件以及程序...

    2021-2022计算机二级等级考试试题及答案No.12127.docx

    在Visual FoxPro中,创建包含备注字段的表和结构复合索引文件后,系统会自动生成三个扩展名为.dbf(数据文件)、.cdx(索引文件)和.fpt(备注字段文件)的文件。 【知识点5】:数据库、数据库系统和数据库管理系统...

    2021-2022计算机二级等级考试试题及答案No.15995.docx

    - **知识点**:在 Visual FoxPro 中,创建含备注字段的表和表的结构复合索引文件时,系统会自动生成 .DBF、.CDX 和 .FPT 文件。 #### 15. 计算机存储单元 - **知识点**:计算机中存储和处理数据的基本单位是 Byte。...

    关于某图书馆管理系统地Mysql设计资料报告材料.docx

    ### 关于某图书馆管理系统地MySQL设计资料报告材料 #### 一、课程设计目的 本课程设计的主要目的是让学生通过实践操作来加深对数据库原理与应用的理解,特别是针对MySQL这一数据库管理系统。通过具体的项目实践,...

    2021-2022计算机二级等级考试试题及答案No.11993.docx

    - **知识点**: 表中的备注字段通常被存储在一个单独的备注文件中,不需要特定的操作来处理备注字段的存储。 - 正确答案 D 表明备注字段不需要排序或建立索引来存储。 ### 14. 函数返回最小值下标 - **知识点**: 在...

    2021-2022计算机二级等级考试试题及答案No.15479.docx

    - **知识点**: `mysql_connect()`用于建立非持久连接,可以使用`mysql_close()`关闭连接;而`mysql_pconnect()`则用于建立持久连接,也可以使用`mysql_close()`尝试关闭连接,但在PHP中通常无效。 - **扩展解释**: ...

    2021-2022计算机二级等级考试试题及答案No.16742.docx

    6. 创建索引:在MySQL中,可以通过`CREATE TABLE`、`ALTER TABLE`和`CREATE INDEX`语句创建索引,而`SHOW INDEX`用于查看已有的索引,不用于创建。 7. 列表框控件:在编程中,列表框的列表内容通常通过`List`属性...

    2021-2022计算机二级等级考试试题及答案No.12785.docx

    - **解析**: 创建含备注字段的表和表的结构复合索引文件后,系统自动生成的三个文件的扩展名为 `.DBF`、`.CDX` 和 `.FPT`。因此,正确答案为 B。 #### 21. HTML 表格对齐 - **知识点**: 在 HTML 中,可以使用 `...

Global site tag (gtag.js) - Google Analytics