快捷搜索:  汽车  科技

mysql中索引主键唯一索引的区别:MySQL实战第41篇index四大索引

mysql中索引主键唯一索引的区别:MySQL实战第41篇index四大索引alter table user3 add index index_email (email);<2>语法2:alter table 表名 add index 索引名称 (所需创建索引字段名);1.单列索引<1>语法1:create index 索引名称 on 要创建的索引表(所需创建索引字段名);-- create index index_name on user(username);

欢迎来到MySQL实战第41篇,修炼500篇,让自己更积极。

mysql中索引主键唯一索引的区别:MySQL实战第41篇index四大索引(1)

【索引理论】

1.如果使用select语句进行查询,数据库会从第一条记录开始检索,即便找到第一条复合条件的数据,数据库的检索也并不会从因此而停止,会把全部数据检索一遍才结束,这样的检索称为全表扫描,数据越大,效率越低。

2.索引是为检索而存在的,效率较高。

3.MySQL索引可以分为单列索引、复合索引、唯一索引,主键索引。

【实践操作】

1.单列索引

<1>语法1:create index 索引名称 on 要创建的索引表(所需创建索引字段名);

-- create index index_name on user(username);

mysql中索引主键唯一索引的区别:MySQL实战第41篇index四大索引(2)

<2>语法2:alter table 表名 add index 索引名称 (所需创建索引字段名);

alter table user3 add index index_email (email);

mysql中索引主键唯一索引的区别:MySQL实战第41篇index四大索引(3)

<3>语法3:创建表时可以指定索引列,index( name)。

create table user8

( id int(12) not null

name varchar(30) not null

primary key(id)

index index_name(name)

);

mysql中索引主键唯一索引的区别:MySQL实战第41篇index四大索引(4)

注:单列索引,称为普通索引,单列索引就是最基本的索引,它没有任何限制。

2.复合索引

<1>复合索引是在多个字段上创建上创建的索引。复合索引遵守“最左前缀”原则,即在查询条件中使用了复合索引的第一个字段,索引才会被使用。因此,在复合索引中索引列的顺序非常重要。

【实践操作】

<1>语法1:create index 索引名 on 表名(列名1,列名2...)

create index index_fruits on fruits(f_id s_id);

mysql中索引主键唯一索引的区别:MySQL实战第41篇index四大索引(5)

查看索引:show index from fruits \G;

mysql中索引主键唯一索引的区别:MySQL实战第41篇index四大索引(6)

mysql中索引主键唯一索引的区别:MySQL实战第41篇index四大索引(7)

<2>语法2:alter table 表名 add index 索引名(字段1,字段2);

alter table fruits add index index_fruits (s_id f_name);

mysql中索引主键唯一索引的区别:MySQL实战第41篇index四大索引(8)

mysql中索引主键唯一索引的区别:MySQL实战第41篇index四大索引(9)

<3>语法3:创建表时可以指定索引列,index (name1 name2...)

create table user4(

u_id int(11) not null

u_name varchar(50) not null

u_addr varchar(30) not null

primary key(u_id)

index (u_name u_addr));

mysql中索引主键唯一索引的区别:MySQL实战第41篇index四大索引(10)

mysql中索引主键唯一索引的区别:MySQL实战第41篇index四大索引(11)

mysql中索引主键唯一索引的区别:MySQL实战第41篇index四大索引(12)

3.唯一索引(unique index)

<1>创建唯一索引必须指定关键字unique,唯一索引和单列类似,主要的区别在于,唯一索引限制列的值必须唯一,但允许空值。对于多个字段,唯一索引规定列值的组合必须唯一。

4.主键索引

<1>主键索引也称丛生索引,是一种特殊的索引,不允许有控制。

<2>一般情况下载创建表时,指明了主键时,主键索引就已经自动创建了,因此无需我们手动创建。

【设计索引】

(1)where子句中的列可能最适合作为索引。

(2)不要尝试为性别或者无这类字段等建立索引。

(3)如果创建复合索引,要遵循最左前缀法则。即查询从索引的最左前列开始,并且不跳过索引中的列。

(4)不要过度使用索引。每一次的更新,删除,插入都会维护该表的索引,更多的索引意味着占用更多的空间。

(5)使用InnoDB存储索引时,记录(行)默认会按照一定的顺序存储,如果已定义主键,则按照主键顺序存储,由于普通索引都会保存主键的键值,因此主键应尽可能的选择较短的数据类型,以便节省存储空间。

(6)不要尝试在索引列上使用函数。

mysql中索引主键唯一索引的区别:MySQL实战第41篇index四大索引(13)

关注财务总监的数据分析,修炼MySQL,给自己一个生活目标!

猜您喜欢: