美文网首页
MySQL索引类型

MySQL索引类型

作者: 史啸天 | 来源:发表于2019-12-18 15:07 被阅读0次

概述

    今天为大家详细介绍一下数据库的几种索引类型、使用方式和场景。

1、普通索引

    最基本的索引,它没有任何限制,用于查询速度优化。

-- 建立表时创建
CREATE TABLE mytable ( name VARCHAR(32), INDEX index_mytable_name(name));
-- 建表后,直接创建
CREATE INDEX index_mytable_name ON mytable(name);
-- 修改表结构
ALTER TABLE mytable ADD INDEX index_mytable_name(name);
-- 删除索引
DROP INDEX index_mytable_name ON mytable;
2、唯一索引

    索引列的值必须唯一,但允许空值。常用做不重复的字段。

-- 建立表时创建
CREATE TABLE mytable ( name VARCHAR(32), UNIQUE index_unique_mytable_name (name));
-- 建表后,直接创建
CREATE UNIQUE INDEX index_unique_mytable_name ON mytable(name);
-- 修改表结构
ALTER TABLE mytable ADD UNIQUE INDEX index_unique_mytable_name(name);
-- 删除索引
DROP INDEX index_unique_mytable_name ON mytable;
3、主键索引

    是一种特殊的唯一索引,一个表只能有一个主键,不允许空值。一般是在建表时候同时创建主键索引。常见的主键自增ID。

-- 建立表时创建
CREATE TABLE mytable (id int(11) NOT NULL AUTO_INCREMENT,name VARCHAR(32),PRIMARY KEY(id));
-- 修改表结构
ALTER TABLE mytable ADD CONSTRAINT id PRIMARY KEY (id);
4、组合索引

    指多个字段上创建的索引,使用组合索引时遵循最左前缀组合。创建组合索引可以形成索引覆盖,提高where语句查询效率。

-- 建立表时创建
CREATE TABLE mytable ( `id` int(11) , `name` VARCHAR(32) , INDEX index_mytable_id_name (`id`,`name`) );
-- 建表后,直接创建
CREATE INDEX index_mytable_id_name ON mytable(id,name);
-- 修改表结构
ALTER TABLE mytable ADD INDEX index_mytable_id_name (id,name);
6、全文索引

    主要用于查找文本中的关键字,而不是直接与索引中的值相比较。全文索引与普通的索引不大相同,它需要配合match agains操作使用,而不是一般的where语句加like。目前只有char、varchar、text列上可以创建全文索引。

-- 建立表时创建
CREATE TABLE `article` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(250) NOT NULL , `contents` text NULL , `create_at` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), FULLTEXT (contents) );
-- 建表后,直接创建
CREATE FULLTEXT INDEX index_article_contents ON article(contents);
-- 修改表结构
ALTER TABLE article ADD FULLTEXT INDEX index_article_contents (contents);
-- 查询语句示例
SELECT * FROM article WHERE MATCH (contents) AGAINST ('精神' IN BOOLEAN MODE);

总结

    虽然索引可以增加查询效率,但对于跟新、创建或者删除的时候,需要去维护索引,反而会导致性能下降;因此建立索引,需要考虑诸多因素。

相关文章

  • MySQL索引及查询优化书目录

    MySQL索引的原理之索引目的 MySQL索引的原理之索引原理 MySQL索引的原理之索引的类型 MySQL索引的...

  • MySQL索引知多少

    mysql索引 总结关于mysql的索引,查询优化,SQL技巧等 1 索引类型 B-Tree索引 Hash索引 ...

  • 重新学习Mysql数据库4:Mysql索引实现原理

    MySQL索引类型 一、简介 MySQL目前主要有以下几种索引类型:1.普通索引2.唯一索引3.主键索引4.组合索...

  • MySql 数据查询优化

    1. MySQL索引类型: mysql的索引有5种:主键索引、普通索引、唯一索引、全文索引、聚合索引(多列索引)。...

  • Mysql 索引那些事

    Mysql 索引那些事 MySQL 常见几种索引类型 MyISAM 和 InnoDB 索引实现2.1. MyISA...

  • 5.2MySQL创建高性能索引考察点

    MySQL索引的基础和类型延伸:MySQL索引的创建原则延伸:MySQL索引的注意事项 索引的基础索引类似于书籍的...

  • mysql索引

    本文从如何建立mysql索引以及介绍mysql的索引类型,再讲mysql索引的利与弊,以及建立索引时需要注意的地方...

  • mysql索引及查询

    本文从如何建立mysql索引以及介绍mysql的索引类型,再讲mysql索引的利与弊,以及建立索引时需要注意的地方...

  • mysql

    1.mysql索引的类型,主键索引、唯一索引、普通索引、组合索引、全文索引,b-tree索引 2.mysql具体有...

  • MySQL索引简述--BTree索引

    MySQL数据库有如下几种常见的索引类型: BTree索引 哈希索引 全文索引 索引的本质 MySQL官方对索引的...

网友评论

      本文标题:MySQL索引类型

      本文链接:https://www.haomeiwen.com/subject/gpcunctx.html