首页 > 数据库 > MySQL > 正文

MySQL笔记之索引的使用

2024-07-24 12:48:33
字体:
来源:转载
供稿:网友

索引是创建在表上的,对数据库表中一列或多列的值进行排序的一种结构

其作用主要在于提高查询的速度,降低数据库系统的性能开销

通过索引,查询数据不必读完记录的全部信息进行匹配,而是只查询索引列

索引相当于字典中的音序表,要查询某字时可以在音序表中找到

然后直接跳转到那一音序所在位置,而不必从字典第一页开始翻,逐字匹配

tips:索引虽能提高查询速度,但在插入记录时会按照索引进行排序,因此降低了插入速度

     最好的操作方式是先删除索引,插入大量记录后再创建索引


索引分类

1.普通索引:不附加任何限制条件,可创建在任何数据类型中

2.唯一性索引:使用unique参数可以设置索引为唯一性索引,在创建索引时,限制该索引的值必须唯一,主键就是一种唯一性索引

3.全文索引:使用fulltext参数可以设置索引为全文索引。全文索引只能创建在char、varchar或text类型的字段上。查询数据量较大的字符串类型字段时,效果明显。但只有MyISAM存储引擎支持全文检索

4.单列索引:在表中单个字段上创建的索引,单列索引可以是任何类型,只要保证索引只对应一个一个字段

5.多列索引:在表中多个字段上创建的索引,该索引指向创建时对应的多个字段

6.空间索引:使用spatial参数可以设置索引为空间索引,空间索引只能建立在空间数据类型上比如geometry,并且不能为空,目前只有MyISAM存储引擎支持


在创建表时创建索引
创建普通索引

复制代码 代码如下:

mysql> create table index1(
    -> id int,
    -> name varchar(20),
    -> sex boolean,
    -> index(id)
    -> );
Query OK, 0 rows affected (0.11 sec)

此处在id字段上创建索引,show create table可查看


创建唯一性索引

复制代码 代码如下:

mysql> create table index2(
    -> id int unique,
    -> name varchar(20),
    -> unique index index2_id(id ASC)
    -> );
Query OK, 0 rows affected (0.12 sec)

此处使用id字段创建了一个名为index2_id的索引

这里的id字段可以不设置唯一性约束,但这样一来索引就没有作用


创建全文索引

复制代码 代码如下:

mysql> create table index3(
    -> id int,
    -> info varchar(20),
    -> fulltext index index3_info(info)
    -> )engine=MyISAM;
Query OK, 0 rows affected (0.07 sec)

要注意创建全文索引时只能使用MyISAM存储引擎
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表