做的成功的地方网站,西安专业网络推广平台,保定专门做网站,蛋糕设计网站目录 一、索引的概念
二、索引的作用
三、索引的副作用
四、创建索引的规则
1、适合创建为索引的字段的规则
2、MySQL的优化 哪些字段/场景适合创建索引#xff0c;哪些不适合
五、索引的分类和创建
1、索引的分类
2、三种创建方式
3、索引的创建演示
1、创建普通索…目录 一、索引的概念
二、索引的作用
三、索引的副作用
四、创建索引的规则
1、适合创建为索引的字段的规则
2、MySQL的优化 哪些字段/场景适合创建索引哪些不适合
五、索引的分类和创建
1、索引的分类
2、三种创建方式
3、索引的创建演示
1、创建普通索引
1直接创建索引 2通过修改表结构创建索引
3通过创建表的方法创建普通索引
2、唯一索引
1直接创建唯一索引
2创建表的时候创建唯一索引
3通过修改表结构创建唯一索引
3、主键索引
1创建主键索引
2通过修改表结构添加主键索引
4、组合索引 (1)创建组合索引
5、全文索引
1创建表的时候创建全文索引
2直接创建全文索引
3修改表结构方式创建
6、查看索引
方法一 方法二
7、删除索引
方法一直接删除
方法二通过修改表的方式删除索引 方法三删除主键索引 一、索引的概念
索引是一个排序的列表再这个列表中存储着索引的值和包含这个值的数据所在行的物理地址。
使用索引进行操作和使用select等语句直接进行查询的区别使用索引后可以不用扫描全表来定位某行的数据而是先通过索引表找到该行数据对应的物理地址直接访问相应的数据因此能加快数据库的查询速度。但是其他操作语句需要扫描全表后再进行相应操作。
总结索引就是一种帮助系统能更快速的查询信息的结构可以通过物理地址直接进行查找而不需要扫描全表再进行操作。
二、索引的作用
1设置了合适的索引之后数据库利用各种快速定位技术能够大大加快查询速度这是创建 索引的最主要的原因。
2当表很大或查询涉及到多个表时使用索引可以成千上万倍地提高查询速度。
3可以降低数据库的IO成本并且索引还可以降低数据库的排序成本。
4通过创建唯一(键)性索引可以保证数据表中每一行数据的唯一性。
5可以加快表与表之间的连接。
6在使用分组和排序时可大大减少分组和排序的时间。
三、索引的副作用
1索引需要占用额外的磁盘空间。 对于 MyISAM 引擎而言索引文件和数据文件是分离的索引文件用于保存数据记录的地址。 而 InnoDB 引擎的表数据文件本身就是索引文件。
2在插入和修改数据时要花费更多的时间因为索引也要随之变动。
四、创建索引的规则
1、适合创建为索引的字段的规则 索引虽可以提升数据库查询的速度但并不是任何情况下都适合创建索引。因为索引本身会消耗系统资源在有索引的情况下数据库会先进行索引查询然后定位到具体的数据行如果索引使用不当反而会增加数据库的负担。
1表的主键、外键必须有索引。因为主键具有唯一性外键关联的是子表的主键查询时可以快速定位
2记录数超过300行的表应该有索引。如果没有索引需要把表遍历一遍会严重影响数据库的性能。
3经常与其他表进行连接的表在连接字段上应该建立索引。
4唯一性太差的字段不适合建立索引。
5更新太频繁地字段不适合创建索引。
6经常出现在 where 子句中的字段特别是大表的字段应该建立索引。 select name,score from ky19 where id1
7索引应该建在选择性高的字段上。
8索引应该建在小字段上对于大的文本字段甚至超长字段不要建索引。 id type score zhusang(txt) page blog
2、MySQL的优化 哪些字段/场景适合创建索引哪些不适合
1小字段
2唯一性强的字段
3更新不频繁但查询率很高的字段
4表记录超过300行
5主键、外键、唯一键
五、索引的分类和创建
1、索引的分类 1普通索引
针对所有字段没有特殊的需求和规则
2唯一索引
针对唯一的字段仅允许出现一次空值
3组合索引
以 多列/多字段 组合的形式的索引按照排序的顺序否则无效
4主键索引
针对唯一字段且不可为空同时一张表只允许包含一个主键索引
5全文索引
varchar char text blog clob 以这些字段检索内部信息来做字段的索引
2、三种创建方式
1创建索引并且指向索引的字段
2alter修改表结构的时候添加add 添加index
3创建表的时直接创建索引
ps主键索引---直接创建主键即可
3、索引的创建演示
1、创建普通索引
1直接创建索引
格式
CREATE INDEX 索引名 ON 表名 (列名[(length)]);示例
create index phone_index on yyy (phone);#(列名(length))length是可选项。如果忽略 length 的值则使用整个列的值作为索引。如果指定使用列前的 length 个字符来创建索引这样有利于减小索引文件的大小。
#索引名建议以“_index”结尾可以自定义。 2通过修改表结构创建索引
格式
CREATE TABLE 表名 ( 字段1 数据类型,字段2 数据类型[,...],INDEX 索引名 (列名));示例
create table test(id int(4) not null,name varchar(10) not null,cardid varchar(18) not null,index id_index (id));
show create table test; #查看表结构 3通过创建表的方法创建普通索引
格式
CREATE TABLE 表名 ( 字段1 数据类型,字段2 数据类型[,...],INDEX 索引名 (列名));示例
create table test(id int(4) not null,name varchar(10) not null,cardid varchar(18) not null,index id_index (id));
show create table test; 2、唯一索引
1直接创建唯一索引
格式
CREATE UNIQUE INDEX 索引名 ON 表名(列名);示例
create unique index address_index on yyy (address);
create unique index name_index on yyy (name);
show create table yyy; 2创建表的时候创建唯一索引
格式
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...],UNIQUE 索引名 (列名));示例
create table amd2 (id int,name varchar(20),unique id_index (id));
show creat table amd2; 3通过修改表结构创建唯一索引
格式
ALTER TABLE 表名 ADD UNIQUE 索引名 (列名);示例
alter table yyy add unique cardid_index (cardid); 3、主键索引
1创建主键索引
格式
CREATE TABLE 表名 ([...],PRIMARY KEY (列名));示例
create table test1 (id int primary key,name varchar(20));
create table test2 (id int,name varchar(20),primary key (id));
show create table test1;
show create table test2; 2通过修改表结构添加主键索引
格式
ALTER TABLE 表名 ADD PRIMARY KEY (列名); 示例
alter table yyy add primary key(name); 4、组合索引 (1)创建组合索引
格式
CREATE TABLE 表名 (列名1 数据类型,列名2 数据类型,列名3 数据类型,INDEX 索引名 (列名1,列名2,列名3));示例
create table amd1 (id int not null,name varchar(20),cardid varchar(20),index index_amd (id,name));
show create table amd1;
insert into amd1 values(1,zhangsan,123123);
insert into amd1 values(1,zhangsan,123123); 5、全文索引
1创建表的时候创建全文索引
格式
CREATE TABLE 表名 (字段1 数据类型[,...],FULLTEXT 索引名 (列名)); 示例
create table auth2.test14(uid int(5) not null.uname char(5) not null,major char(10) not null,grade int(2) not null,score decimal(5,2) not null,addition char(10) default 无,fulltext index fen(uname),primary key(uid)); 2直接创建全文索引
格式
CREATE FULLTEXT INDEX 索引名 ON 表名 (列名);示例
create fulltext index remark_index on member (remark); 3修改表结构方式创建
格式
ALTER TABLE 表名 ADD FULLTEXT 索引名 (列名);示例
alter table ky30 add fulltext xingming(name); 6、查看索引
方法一
格式
show index from 表名;
show index from 表名\G; #竖向显示表索引信息示例
show index from yyy;
show index from yyy\G; #竖向显示表索引信息 方法二
格式
show keys from 表名;
show keys from\G 表名; #竖向显示索引信息示例
show keys from yyy;
show keys from yyy\G; #竖向显示索引信息
7、删除索引
方法一直接删除
格式
DROP INDEX 索引名 ON 表名;示例
drop index name_index on member;
方法二通过修改表的方式删除索引
格式
ALTER TABLE 表名 DROP INDEX 索引名;示例
alter table member drop index id_index;
show index from member; 方法三删除主键索引
格式
ALTER TABLE 表名 DROP PRIMARY KEY;示例
alter table yyy drop primary key;