数据库,索引

创建索引:

1.在创建表的同时声明索引 .CREATE TABLE ......

CREATE TABLE t1(id int,name char(30),index idx_id(id));
2.在已存在表上利用修改语句创建索引. ALTER TABLE ......

ALTER TABLE t1 ADD INDEX idx_name(name);
3.在已存在表上创建索引.CREATE INDEX ......

CREATE UNIQUE INDEX idx_id_name ON t1(id,name);#创建唯一索引
4.通过图形界面添加索引

查看索引:

show index from 表名;#查看表的索引
show create table 表名;#查看表的设计

实例:

CREATE TABLE hhh(
    a int AUTO_INCREMENT, #主键,AUTO自动排序赋值
    b int,     #带普通索引
    c int,     #不带索引
    INDEX idx_b(b),#创建普通索引
    PRIMARY KEY (a)
);
#往hhh表中插入80000个随机数字(利用存储过程插入)
CREATE PROCEDURE hhh_insert() #创建存储过程
BEGIN
DECLARE i INT DEFAULT 1;#声明变量i并赋值1
WHILE i<80000 DO
    INSERT INTO hhh(b,c) SELECT rand()*80000,rand()*80000;#rand产生随机数
    SET i=i+1;
END WHILE;
COMMIT;
END;

#执行上面的存储过程
CALL hhh_insert();

#测试一,带索引和不带索引对于查找数据的区别

SELECT COUNT(*) FROM hhh;

#分析下面三条查询语句的区别
EXPLAIN SELECT * FROM hhh WHERE a=10000;#主键
EXPLAIN SELECT * FROM hhh WHERE b=10000;#带索引
EXPLAIN SELECT * FROM hhh WHERE c=10000;#不带索引

#查看具体的查询时间的区别
SELECT * FROM hhh WHERE a=10000;#主键 0.00s
SELECT * FROM hhh WHERE b=10000;#带索引  0.00s
SELECT * FROM hhh WHERE c=10000;#不带索引  0.03s

索引的目的:

#结论:索引能提高查询速度

删除索引:

1.使用ALTER TABLE删除索引

ALTER TABLE 表名 DROP INDEX 索引名;
2.使用DROP INDEX删除索引
DROP INDEX内部映射到ALTER TABLE语句.语法规则如下:

DROP INDEX 索引名 ON 表名;
3.利用图形界面直接删除

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值