MySQL 索引--事务--存储引擎 详解

一、索引

1.1、索引的概念

数据库中的索引与书籍中的目录类似
在一本书中,无须阅读整本书,利用目录就可以快速査找所需信息
书中的目录是一个词语列表,其中注明了包含各个词的页码

数据库索引
是一个排序的列表,存储着索引值和这个值所对应的物理地址
无须对整个表进行扫描,通过物理地址就可以找到所需数据
是表中一列或者若干列值排序的方法
需要额外的磁盘空间

1.2、索引的作用

设置了合适的索引之后,数据库利用各种快速的定位技术,能够大大加快查询速率

特别是当表很大时,或者查询涉及到多个表时,使用索引可以成千上万倍地提高查询速度

可以降低数据库的IO成本,并且还可以降低数据库的排序成本

通过创建唯一性索引保证数据表数据的唯一性

可以加快表与表之间的连接

在使用分组和排序时,可大大减少分组和排序时间

1.3、索引的分类

1.3.1、普通索引

这是最基本的索引类型,而且它没有唯一性之类的限制

创建普通索引的方式
(1)用create方法创建普通索引

mysql> create index index_age on info (age);

(2)用alter方法创建普通索引

mysql> alter table info add index index_age (age);

(3)创建表的时候创建普通索引

mysql> create table user (
    -> id int(4) not null primary key auto_increment,
    -> name varchar(10) not null,
    -> score decimal not null,
    -> hobby int(2) not null default '1',
    -> index index_scrore (score));
    

1.3.2、唯一索引

这种索引和前面的“普通索引”基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须唯一
主键

创建唯一索引的方式
(1)用create unique方法,创建唯一索引

mysql> create unique index unique_name on info (name);

(2)用alter table方法创建唯一索引

mysql> alter table info add unique index_name (name);

(3)用新建表的方法创建唯一索引

mysql> create table user1 (
    -> id int(4) not null primary key auto_increment,
    -> name varchar(10) not null,
    -> score decimal not null,
    -> hobby int(2
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值