MySQL索引经验之浅见

在数据库表中,使用索引可以大大提高查询速度。
假如我们创建了一个testindex表:
create table testindex(i_testid int not null,vc_name varchar(16) not null);
我们随机向里面插入了1000条记录,其中有一条
i_testid vc_name
555 erquan
在查找vc_name="erquan"的记录
select * from testindex where vc_name='erquan';
时,如果在vc_name上已经建立了索引,mysql无须任何扫描,即准确可找到该记录!相反,mysql会扫描所有记录,即要查询1000次啊~~可以索引将查询速度提高100倍。
一、索引分单列索引和组合索引
单列索引:即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。
组合索引:即一个索包含多个列。
二、介绍一下索引的类型
1.普通索引。
这是最基本的索引,它没有任何限制。它有以下几种创建方式:
(1)创建索引:create index indexname on tablename(tablecolumns(length));如果是char,varchar类型,length可以小于字段实际长度;如果是blob 和 text 类型,必须指定length,下同。
(2)修改表结构:alter tablename add index [indexname] on (tablecolumns(length))
(3)创建表的时候直接指定:create table tablename ( [...], index [indexname] (tablecolumns(length)) ;
2.唯一索引。
它与前面的"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:
(1)创建索引:create unique index indexname on tablename(tablecolumns(length))
(2)修改表结构:alter tablename add unique [indexname] on (tablecolumns(length))
(3)创建表的时候直接指定:create table tablename ( [...], unique [indexname] (tablecolumns(length));
3.主键索引
它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:create table testindex(i_testid int not null auto_increment,vc_name varchar(16) not null,primary key(i_testid));
当然也可以用alter命令。
记住:一个表只能有一个主键。
4.全文索引
mysql从3.23.23版开始支持全文索引和全文检索。这里不作讨论,呵呵~~

删除索引的语法:drop index index_name on tablename


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值