目录
一:索引简介
二:如何创建索引:
1.创建数据表的时候创建索引
2.在已有的表上创建索引;查看索引;删除索引;
三:索引使用原则
一:索引简介
● 向数据表里保存数据,记录越来越多,一旦达到上千万条,怎么提高检索速度就需要考虑了;
● 当我们打开一个应用,希望能快点加载出内容,影响加载速度的因素有很多,但如何减少数据查找的时间是其中非常重要的一环;
● 索引机制是提高数据检索速度的;索引机制的原理很简单,就是对数据进行排序:
给表的某个字段创建索引后,设置好索引以后,数据库就会对这个字段进行排序,生成二叉树。MySQL利用二叉树结构,对数据表的记录排序,从而加速数据的检索速度:
即,只有引入索引机制,才能在数据表有超大量数据的情况下,还能保持查找的高速;
二:如何创建索引:
1.创建数据表的时候创建索引
注:(1)如果指定了索引的名称,这个索引的名字就是我们指定的这个;;;如果没有指定索引的名字,索引也是有名字的,数据库就会用创建索引的那个字段的字段名作为索引的名称。
(2)一张表,可以给多个字段设置索引;
示例:创建t_message表,并给其type字段设置索引,索引名字叫"idx_type";
CREATE TABLE t_message(
id INT UNSIGNED PRIMARY KEY,
content VARCHAR(200) NOT NULL,
type ENUM("公告","通报","个人通知") NOT NULL,
create_time TIMESTAMP NOT NULL,
INDEX idx_type (type)
);
……………………………………………………
2.在已有的表上创建索引;查看索引;删除索引;
给一个已经存在的数据表创建索引;查看索引,删除索引;
示例1:给t_meaaget的content字段添加索引,并查看t_message表的索引::::这些语句好像不能一起执行,只能执行完一条,再去执行下一条。
CREATE INDEX inx_content ON t_message(content);
SHOW INDEX FROM t_message;
示例2:删除在content字段上的“idx_content”索引,在type字段上创建“idx_type”索引,并查看t_message表的索引:::这些语句好像不能一起执行,只能执行完一条,再去执行下一条。
DROP INDEX inx_content ON t_message;
ALTER TABLE t_message ADD INDEX t_type(type);
SHOW INDEX FROM t_message;
只有引入索引机制,才能在数据表有超大量数据的情况下,还能保持查找的高速;主键字段自带索引,所以,利用主键作为查询条件也可以保持高速;但是那些非主键字段如果不设置索引,当表中数据非常多,并以这些非索引字段为查询条件的时候,查询的会非常慢,所以,我们应该给那些经常作为检索条件的字段,设置上索引。
三:索引使用原则
索引机制是非常重要的,大多数软件系统,数据的读取远远超过了数据的写入,比如常见的购物网站,用户多是看的多,买的少,即购物网站系统上,查询的数量远远多于写入速度;