`

在MySQL设计索引与使用索引

阅读更多
索引是数据库中用来提升性能最常用的工具。MySQL 5.0支持索引类型,而索引一般更多的使用在数据库优化上。首先所有的MYSQL列类型都可以被索引,对相关的列使用索引是提高SELECT操作性能最佳途径。目前存储索引表默认创建的都是BTREE索引,目前不支持函数索引。目前MYSQL对全文索引做的并不是太好,只支持几种类型(CHAR,VARCHAR,TEXT)。

为user表创建一个10个字节的前缀索引:

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING INDEX_TYPE] ON table_name(index_col_name,...)

index_col_name:col_name[(length) [ASC|DESC]]

如:
CREATE INDEX userName ON user (user(10));


删除索引语法:
DROP index_name ON table_name;


如:
DROP INDEX userName ON user;


引用
如果不使用索引,那么在MYSQL中必须从第1条记录开始然后读完整个表直到找出相关的行。这样一来,当表越大,表里的字段越多时,花费的时间就越多,如果表中的列有一个索引,那么MYSQL直接去索引中查找,没有必要查看所有的数据。

当然,在设计索引时也必须注意一些地方,设计索引有一定的原则。这样可以使得索引更快,更高效。

1,一般来说,索引列是经常被WHERE的列。
2,使用唯一索引。一般来说,如果对性别进行索引,因为性别一般只有2个,男与女,所以对性别做索引不会起到非常好的效果。
3,索引要更短。如果一个CHAR(100),最好对其前10到20个字符内进行索引。
4,不要过度索引,一般在性能比较低下的地方进行索引。而且索引太多,不容易优化。

分享到:
评论

相关推荐

    mysql存储与索引技术

    MySQL 的索引分为两种主要类型:MyISAM 使用非聚集索引,索引与数据分开存储,而 InnoDB 使用聚集索引,索引和数据在同一结构中,因此 InnoDB 的索引支持更快的查找,但不支持全文检索。在索引优化方面,最左前缀...

    MySQL Innodb 索引原理详解

    ##### 2.3 聚簇索引与非聚簇索引 - **聚簇索引**:主键索引即是聚簇索引,它决定了表中数据的物理存储顺序。 - **非聚簇索引**:非主键索引是非聚簇索引,它们并不决定表中数据的物理存储顺序。 ##### 2.4 插入与...

    书籍:Oracle与MySQL数据库索引设计与优化

    《Oracle与MySQL数据库索引设计与优化》这本书深入探讨了两个主流关系型数据库管理系统——Oracle和MySQL中的索引设计和优化策略。索引是数据库性能的关键因素,它们能够加速数据检索,提高系统效率,尤其在大数据量...

    mysql 索引与执行计划

    ### MySQL 索引与执行计划 #### 一、索引与执行计划 ##### 1.1 索引入门 在深入探讨之前,我们首先需要理解什么是索引以及其重要性。 ###### 1.1.1 索引是什么 索引(Index)在MySQL中是一种帮助数据库高效获取...

    MySQL索引 使用笔记

    【MySQL索引 使用笔记】 MySQL数据库是世界上最流行的开源关系型数据库管理系统之一,其高效的数据查询能力在很大程度上依赖于索引。本笔记将深入探讨MySQL中的索引使用,旨在帮助你提升数据库性能。 1. 索引的...

    MySql索引详解,索引可以大大提高MySql的检索速度

    打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到...

    mysql的索引优化

    ### MySQL的索引优化 ...通过上述内容可以看出,合理使用和优化MySQL索引对于提升数据库性能至关重要。开发者应该根据具体的应用场景来选择合适的索引策略,并定期评估和调整索引设置,以确保系统的高效运行。

    MySQL索引 聚集索引

    MySQL索引 聚集索引 如果你想了解MySQL索引查询优化,你首先应该对MySQL数据组织结构、B-Tree索引、聚集索引,次要索引有一定的了解,才能够更好地理解MySQL查询优化行为。这里主要探讨MySQL InnoDB的聚集索引。

    MySQL索引优化课件

    在设计触发器时,需要谨慎权衡其带来的益处和潜在的性能影响。 此外,了解如何分析和监控MySQL的性能也至关重要。通过使用EXPLAIN分析查询计划,我们可以了解索引是否被有效利用。SHOW STATUS和SHOW VARIABLES命令...

    MySQL数据库:使用NAVICAT工具创建和管理索引.pptx

    首先,打开目标表,选择“设计表”,在设计视图中,你可以点击“索引/主键”标签,然后点击“新建索引”按钮。在这里,你可以定义索引名称、类型和包含的字段,完成后点击“应用”或“确定”。 **管理索引** 1. **...

    mysql添加索引.pdf

    因此,在设计数据库时,应谨慎选择需要索引的列,通常关注那些出现在JOIN条件、WHERE子句、GROUP BY或ORDER BY中的列。同时,定期监控和评估索引的性能,通过`ANALYZE TABLE`或`OPTIMIZE TABLE`命令进行调整,以保持...

    Mysql-索引原理分析

    MySQL数据库中的索引是提升查询性能的关键工具,它的工作原理和设计细节对于数据库管理员和开发者来说至关重要。让我们深入探讨一下标题和描述中提及的几个关键概念。 首先,我们来看看索引的存储结构。在MySQL中,...

    MySQL何时使用索引,何时不使用索引

    MySQL何时使用索引,何时不使用索引,归纳的还算详细,可以看看。

    mysql数据库以及索引详解.pptx

    - 在一个SELECT语句中,索引只能使用一次(如在WHERE中使用后,在ORDER BY中不再有效)。 - 在查询条件中使用不等于符号(包括<、>、!=)可能导致索引失效。 通过理解MySQL及其索引的基本概念,开发者可以更好地...

    MySQL索引最佳实践

    ### MySQL索引最佳实践 ...通过以上内容的学习,我们可以了解到MySQL索引的重要性和不同类型的索引在实际应用中的优势与局限性。正确地理解和运用这些知识可以帮助我们更高效地管理和优化数据库性能。

    MySQL索引类型大汇总

    唯一索引与普通索引类似,唯一的区别是索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。可以通过以下三种方式创建唯一索引: * 创建索引:`CREATE UNIQUE INDEX indexName ON mytable...

Global site tag (gtag.js) - Google Analytics