详解MySQL如何创建索引(案例)

详解MySQL如何创建索引(案例)

案例:创建数据库index_test,按照下表的结构在index_test数据库中创建两个数据表test_table1和test_table2,并按照操作过程完成对数据表的基本操作。

(1)登录MySQL数据库
(2)创建数据库index_test
(3)创建表test_table1
(4)创建表test_table2,存储引擎为MyISAM
(5)使用alter table 语句在表test_table2的birth字段上建立名称为ComDateIdx的普通索引
(6)使用alter table语句在表test_table2的id字段上添加名称为UniqIdx2的唯一索引,并以降序排列
(7)使用create index 在firstname、middlename和lastname三个字段上建立名称为MultiColidx2的组合索引
(8)使用create index在title字段上建立名称为FTidx的全文索引
(9)使用alter table语句删除表test_table1中名称为Uniqidx的唯一索引
(10)使用drop index语句删除表test_table2中名称为MultiColidx2的组合索引
几个注意点

(免费学习推荐:mysql视频教程)

(1)登录MySQL数据库
C:UsersHudie>mysql -h localhost -u root -pEnter password: *******
(2)创建数据库index_test
mysql> create database index_test;Query OK, 1 row affected (0.06 sec)mysql> use index_test;Database changed
(3)创建表test_table1
mysql> create table test_table1    -> (    -> id int not null primary key auto_increment,    -> name char(100) not null,    -> address char(100) not null,    -> description char(100) not null,    -> unique index uniqidx(id),    -> index MultiColidx(name(20),address(30) ),    -> index Comidx(description(30))    -> );Query OK, 0 rows affected (0.11 sec)mysql> show create table test_table1 G*************************** 1. row ***************************       Table: test_table1Create Table: CREATE TABLE `test_table1` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name` char(100) NOT NULL,  `address` char(100) NOT NULL,  `description` char(100) NOT NULL,  PRIMARY KEY (`id`),  UNIQUE KEY `uniqidx` (`id`),  KEY `MultiColidx` (`name`(20),`address`(30)),  KEY `Comidx` (`description`(30))) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci1 row in set (0.06 sec)

可以看到在test_table表中成功创建了3个索引,分别是在id字段上名称为uniqidx的唯一索引;在name和address字段上的组合索引;在description字段上长度为30的普通索引。

(4)创建表test_table2,存储引擎为MyISAM
mysql> create table test_table2    -> (    -> id int not null primary key auto_increment,    -> firstname char(100) not null,    -> middlename char(100) not null,    -> lastname char(100) not null,    -> birth date not null,    -> title char(100) null    -> )ENGINE=MyISAM;Query OK, 0 rows affected (0.07 sec)
(5)使用alter table 语句在表test_table2的birth字段上建立名称为ComDateIdx的普通索引
mysql> alter table test_table2 add index ComDateidx(birth);Query OK, 0 rows affected (0.13 sec)Records: 0  Duplicates: 0  Warnings: 0
(6)使用alter table语句在表test_table2的id字段上添加名称为Uniqidx2的唯一索引
mysql> alter table test_table2 add unique index Uniqidx(id);Query OK, 0 rows affected (0.11 sec)Records: 0  Duplicates: 0  Warnings: 0
(7)使用create index 在firstname和middlename两个字段上建立名称为 MultiColidx2的组合索引
mysql>  create index MultiColidx2 on test_table2(firstname,middlename);Query OK, 0 rows affected (0.12 sec)Records: 0  Duplicates: 0  Warnings: 0
(8)使用create index在title字段上建立名称为FTidx的全文索引
mysql> create fulltext index ftidx on test_table2(title);Query OK, 0 rows affected (0.13 sec)Records: 0  Duplicates: 0  Warnings: 0
(9)使用alter table语句删除表test_table1中名称为Uniqidx的唯一索引
mysql> alter table test_table1 drop index uniqidx;Query OK, 0 rows affected (0.09 sec)Records: 0  Duplicates: 0  Warnings: 0
(10)使用drop index语句删除表test_table2中名称为MultiColidx2的组合索引
mysql> drop index MultiColidx2 on test_table2;Query OK, 0 rows affected (0.12 sec)Records: 0  Duplicates: 0  Warnings: 0
几个注意点:

1.索引对数据库的性能如此重要,如何使用它?

如果索引列较少,则需要的磁盘空间和维护开销都较少。如果在一个大表上创建了多种组合索引,索引文件也会膨胀很快。另外索引较多,可覆盖更多的查询。尝试添加、删除、修改索引,不影响数据库架构或应用程序设计。

2.尽量使用短索引

对字符串类型的字段进行索引,如果可能应该指定一个前缀长度。例如,有一个char(255)的列,如果在前 10或30个字符内多数值是唯一的,就不需要对整个列进行索引。短索引不仅可以提高查询速度,也能节省磁盘空间、减少I/O操作。

相关免费学习推荐:mysql数据库(视频)

以上就是详解MySQL如何创建索引(案例)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/187584.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月1日 11:39:08
下一篇 2025年11月1日 11:41:29

相关推荐

  • mysql创建索引与索引删除

    本文章要来讲关于mysql创建索引与索引删除哦,本教程只讲关于mysql 5.0支持的索引类型,并简单介绍索引的设计原创,索引是数据库中用来提高性能的最常用的工具。

    数据库 2025年12月2日
    000
  • 如何使用 PHP 在 MySQL 表中创建索引?

    要使用 mysql 创建索引,可以使用 create index 语句。语法:create index index_name on table_name (column_name);建立索引时需考虑索引列选择、索引类型和索引命名等事项。例如,为 products 表中 name 列创建索引:crea…

    2025年11月9日 后端开发
    100
  • MySQL 创建索引(Create Index)的方法和语法结构及例子

    MySQL 创建索引(Create Index)的方法和语法结构及例子 CREATE INDEX Syntax CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [index_type] ON tbl_name (index_col_name,&#8…

    数据库 2025年11月8日
    000
  • SQLSERVER 创建索引实现代码

    是SQL Server编排数据的内部方法。它为SQL Server提供一种方法来编排查询数据 什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K。为了加快查找的速度,汉语字(词)典一般都有按拼音、笔画、偏…

    数据库 2025年11月7日
    000

发表回复

登录后才能评论
关注微信