开发者学堂课程【MySQL 实操课程:MySQL 下索引的创建与应用以及设计原理】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/717/detail/12823
MySQL 下索引的创建与应用以及设计原理
内容介绍
一、阿里云创建索引操作
二、索引的设计原则
一、阿里云创建索引操作
这节课进行创建事例的讲解,前面已经讲过创建唯一索引,普通索引,前缀索引,复合索引,这里主要讲解符合索引,复合索引就是创建多个字段,可以参考如下代码做实验,就不再重复讲解了:
create table book(
isbn char(20) primary key,
name char(100) not null,
brief introduction text not null,
price decimal(6,2),
publish_ _time date not null,
unique index isbn_ unique (isbn),
index name_ index (name (20)),
index complex_ jindex (price,publish_ time)
);
create table book_ noindex(
isbn char(20) primary key,
name char(100) not null,
brief_ introduction text not null,
price decimal(6,2),
publish_ time date not null
);
也可以通过阿里云的工具进行操作,演示如下:
进入命令窗口,命令行输入代码进行执行,如下创建表执行成功
然后写入数据,要注意格式,进行执行:
mysql> insert into book_ index(isbn,name ,brief introduction,price,publish time) values
(978-7-115-25626- 3','PHP Fundamentals & Practices',Web Database Applications MySQL offers web developers a mixture of theoretical and practical information on creating web database applications. ','42.0','2012-7-1'),
(978-7-115-25626- 4,'MySQL COOKBOOK',The MySQL database management system has become quite popular in recent years. ','128.0','2008-1-1),
('978-7-115-25626-5' 'Beginning MySQL' MySQL is especially heavily used in combination with a web server for constructing database-backed web sites that involve dynamic content generation. ','98.0',2008-1-1');
然后进行数据查询,也是一样的:
mysql>select*from book_index where match(name,brief_intriduction) against(‘mysql’);
查询成功:
以上就是阿里云 rds.mysql 数据库的用法。在阿里云中对于上面创建的表还可以进行对于索引的编辑,如:
在DMS 数据管理平台非常方便,进入索引信息页面后找到需要进行编辑的索引名,点击编辑,而且创建的 Innodb 的表是支持全文索引的,如:
mysql> show create table book_index
二、索引的设计原则
1、表的某个字段值离散度越高,该字段越适合选作索引的关键字。就比如说性别,只分为男和女,所以离散度比较低,不太适合作为索引,反而像身份证,手机号码,基本上都是唯一的,就更适合做索引的关键字。
2、占用储存空间少的字段更适合选作索引的关键字; 所以不要使用 text 文本型,var_char 型作为关键字。
3、存储空间固定的字段更适合选做索引的关键字,比如说 char,相对于 var_char更加固定存储空间。
4、较频繁地作为 where 查询条件的字段应该创建索引,分组字段或者排序字段比如 join 也应该创建索引,两个表的连接字段应该创建索引。一般两个表进行关联会通过主键进行索引, 比如 id,唯一性索引。
5、更新频繁的字段不适合创建关联,因为每一次更新都会带来索引的开销。不会出现在 where 子句中的字段不应该创建索引
6、尽量使用前缀索引,因为前缀索引可以节省物理的空间,特别是有的字符串前面几个字符作为关键条件就可以检索出数据,比如身份证,手机号后面几位就可以确定唯一性,所以通过一些技巧的设置可以实现前缀索引。
到此,本次课程内容的讲解,主要内容是是索引,索引的定义,什么是索引,索引的类型,还有索引的设计原则。在实际的使用过程当中,一定要遵守索引的设计原则,也重点讲解过怎么查看索引有没有生效,通过 explain 进行查看索引是否生效,那么在实际的工作当中要查看索引有没有生效,是不是按照预先的方式进行执行。




