`

MySQL索引分类和各自用途

阅读更多
一、 MySQL: 索引以B树格式保存

  Memory存储引擎可以选择Hash或BTree索引,Hash索引只能用于=或<=>的等式比较。

  1、普通索引:create index on Tablename(列的列表)

  alter table TableName add index (列的列表)

  create table TableName([...], index [IndexName] (列的列表)

  2、唯一性索引:create unique index

  alter ... add unique

  主键:一种唯一性索引,必须指定为primary key

  3、全文索引:从3.23.23版开始支持全文索引和全文检索,FULLTEXT,

  可以在char、varchar或text类型的列上创建。

  4、单列索引、多列索引:

  多个单列索引与单个多列索引的查询效果不同,因为:

  执行查询时,MySQL只能使用一个索引,会从多个索引中选择一个限制最为严格的索引。

  5、最左前缀(Leftmost Prefixing):多列索引,例如:fname_lname_age索引,以下的搜索条件MySQL都将使用

  fname_lname_age索引:firstname,lastname,age;firstname,lastname;firstname,其他情况将不使用。

  二、根据sql查询语句确定创建哪种类型的索引,如何优化查询

  选择索引列:

  a.性能优化过程中,选择在哪个列上创建索引是最重要的步骤之一。可以考虑使用索引的主要有

  两种类型的列:在where子句中出现的列,在join子句中出现的列。

  b.考虑列中值的分布,索引的列的基数越大,索引的效果越好。

  c.使用短索引,如果对字符串列进行索引,应该指定一个前缀长度,可节省大量索引空间,提升查询速度。

  d.利用最左前缀

  e.不要过度索引,只保持所需的索引。每个额外的索引都要占用额外的磁盘空间,并降低写操作的性能。

  在修改表的内容时,索引必须进行更新,有时可能需要重构,因此,索引越多,所花的时间越长。

  MySQL只对一下操作符才使用索引:<,<=,=,>,>=,between,in,

  以及某些时候的like(不以通配符%或_开头的情形)。
分享到:
评论

相关推荐

    Mysql数据库从入门到精通.rar

    6.MySQL索引分类和各自用途 7.MySQL中的字符串比较函数 8.MySQL中字符串函数详细介绍 9.都出深入SELECT语句的查询功能 10.浅谈MySQL存储引擎选择InnoDB还是MyISAM 11.浅谈unique列上插入重复值的MySQL解决方案 12....

    mysql 索引分类以及用途分析

    总的来说,了解和掌握MySQL的各种索引类型及其用途,能够帮助我们设计出更高效的数据表结构,从而提高数据库的查询速度和整体性能。在实际应用中,应结合具体业务场景和查询需求,灵活选择和创建适合的索引。

    MySQL数据库应用实战教程 第7章教案 索引.docx

    不同类型的索引有各自的特性和用途,正确选择和使用这些索引类型能够最大化地提升数据库的查询效率。 此外,本章还将强调在某些情况下索引可能无法被有效利用,如比较不匹配的数据类型、使用`OR`连接条件或者在条件...

    mysql 5.1中文文档

    本文档将深入探讨MySQL 5.1的主要特性、安装与配置、SQL语法、表设计、索引优化、存储引擎、事务处理、备份与恢复、性能调优等多个方面,旨在帮助用户全面了解和掌握MySQL 5.1。 1. **主要特性** - **InnoDB存储...

    简述MySQL的存储引擎以及各自的特点

    首先,MyISAM 是 MySQL 的早期默认存储引擎,主要特点是快速读取和全文索引支持。它的数据文件是独立的,不包含事务处理或行级锁定功能,这意味着在多用户环境中,如果多个用户同时修改同一表,可能会导致数据不一致...

    redis-mysql.zip

    Redis 和 MySQL 是两种广泛应用的数据库系统,它们在数据存储、处理和管理方面有着各自的特点和优势。本篇文章将深入探讨 Redis 与 MySQL 的差异、用途以及如何在实际应用中结合使用。 Redis 是一种内存数据库,它...

    mysql面试题资源分享

    - 学习MySQL中的基本数据类型,如INT、VARCHAR、DATE、DECIMAL等,了解它们的用途和存储限制。 - 理解字段约束,如NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY,以及它们在数据库设计中的作用。 2. **SQL语句**...

    MYSQL培训经典教程

    - 触发器的定义和用途:在特定事件(如INSERT、UPDATE、DELETE)发生时自动执行的SQL语句。 - 触发器的创建和管理:确保业务规则的强制执行。 9. **备份与恢复** - 数据库备份:mysqldump工具的使用,全量和增量...

    mysql+mongodb+redis.rar

    本压缩包“mysql+mongodb+redis.rar”包含了三个主流的数据库系统:MySQL、MongoDB和Redis,它们各自有着独特的特性和用途。以下是对这三个数据库系统的详细介绍: 1. **MySQL**: MySQL是一款开源、免费的关系型...

    MySQL55题答案.zip

    - 熟悉MySQL中的各种数据类型,如INT、VARCHAR、DATE、TIME、TEXT、BLOB等,并理解它们各自的用途和限制。 3. **索引** - 索引能极大地提高查询性能,理解B-Tree、Hash、Full-text和R-Tree索引的区别。 - 如何...

    MySQL学习笔记与实践代码.zip

    理解每个数据类型的特点和用途是编写有效SQL语句的关键。 4. **SQL语句**:SQL(结构化查询语言)是用于管理和操作数据库的语言。笔记可能详细解释了SELECT用于查询数据,INSERT用于插入数据,UPDATE用于修改数据,...

    mysql-5.7官方手册

    MySQL 5.7可能包含第三方软件组件,这些组件的使用同样受到各自的许可协议限制。无论是商业版本还是社区版本,都需要按照相关规定正确使用这些第三方软件。 ### 五、文档资源 #### 5.1 文档获取 除了官方手册外,...

    checkbox和radio 的使用 特效

    它们都是HTML `&lt;input&gt;`标签的不同类型,但各自具有特定的用途和交互方式。在这里,我们主要探讨`checkbox`和`radio`的使用以及如何实现它们的特效。 1. **Checkbox(复选框)** - **定义**:`checkbox`用于让用户...

    李海翔 - MySQL视图优化

    在视图优化案例分析中,李海翔首先介绍了创建视图前的准备工作,这包括创建两张表t1和t2,并为它们各自设置一个主键和两个唯一键。接着,李海翔创建了三种不同类型的视图:一个是简单的视图v_SPJ,使用了两个表的...

    MySql Tips

    LEFT JOIN、RIGHT JOIN、INNER JOIN和FULL OUTER JOIN有各自的用途。理解它们的区别并适当使用,能够避免不必要的数据冗余和性能问题。 5. 子查询与联接 在某些情况下,子查询和联接都可以达到相同的效果,但性能...

    mysql ,oracle 数据库命名规范

    "MySQL 和 Oracle 数据库命名规范"是两种主流数据库系统各自遵循的一套规则,旨在确保数据库对象(如表、列、索引等)的命名清晰、一致且有意义。下面我们将详细探讨这两种数据库系统的命名规范。 首先,MySQL 的...

    十款优秀的MySQL图形化界面

    以上介绍的这四款 MySQL 图形化界面工具都是经过精心挑选的,它们各自拥有独特的功能和优势,可以满足不同用户的需求。无论是初学者还是高级用户,都能在这四款工具中找到合适的解决方案,有效提升数据库管理的效率...

    数据库学习笔记包括:Oracle、MySQL、MongoDB、Redis,Neo4j的在完善.zip

    本压缩包中的学习笔记涵盖了五大主流数据库系统:Oracle、MySQL、MongoDB、Redis以及Neo4j,它们各自拥有独特的特性和用途,适用于不同的场景。 1. Oracle数据库: Oracle是一款关系型数据库管理系统(RDBMS),在...

    简述Redis和MySQL的区别

    Redis 和 MySQL 是两种非常流行的数据库系统,它们各自在不同的场景下有着独特的优点和用途。本文将详细介绍 Redis 和 MySQL 的主要区别,以便于更好地理解它们在实际应用中的选择和使用。 首先,MySQL 是一个关系...

Global site tag (gtag.js) - Google Analytics