mysql索引的管理

#mysql索引的管理

/*

索引是针对数据所建立的目录
作用:可以加快查询速度
负面影响:降低了增删改的速度

*/


/*
案例:
假设有新闻表,15列,其中10列上有索引,共有100万行数据,如何快速导入
1.把空表的索引全部删除
2.导入数据
3.数据导入完毕后,集中建索引
*/

/*
索引的创建原则
1.不要过度索引
2.在where条件最频繁的列上加
3.尽量索引散列值,过于集中的值加索引,意义不大
*/

/*
索引文件比数据文件大是很常见的,所以不要滥用索引
*/

/*
索引的类型
1.普通索引(INDEX) 仅仅是加快查询速度

2.唯一索引(UNIQUE INDEX) 行上的值不能重复

3.主键索引(PRIMARY KEY) 不能重复
主键必唯一,但是唯一索引不一定是主键
一张表上,只能有一个主键,但是可以有一个或多个唯一索引

4.全文索引(FULLTEXT INDEX) FULLTEXT索引仅可用于MyISAM表

*/

#查看一张表上的所有索引
SHOW INDEX FROM book;
SHOW KEYS FROM book;
#在mysql的dos窗口中,使用如下sql语句,显示数据的时候更方便看
#SHOW INDEX FROM book\G

#EXPLAIN语句可以用作DESC(DESCRIBE)的一个同义词,以下效果相同
EXPLAIN book;
DESC book;
DESCRIBE book;

/*

ALTER TABLE 表名 ADD INDEX /UNIQUE/FULLTEXT[索引名](列名)
ALTER TABLE 表名 ADD PRIMARY KEY(列名) 不要加索引名,因为主键只有一个

*/

CREATE TABLE member(
id INT,
email VARCHAR(30),
tel CHAR(11),
intro text
)ENGINE myisam charset utf8;

#加一个普通索引
ALTER TABLE member ADD INDEX tel (tel);
SHOW KEYS FROM member;
SHOW INDEX FROM member;
#添加一个唯一索引(我这里就不取索引名了) 
ALTER TABLE member ADD UNIQUE (email);
SHOW KEYS FROM member;
SHOW INDEX FROM member;

#添加一个全文索引
ALTER TABLE member ADD FULLTEXT (intro);
SHOW KEYS FROM member;
SHOW INDEX FROM member;

#添加一个主键索引
ALTER TABLE member ADD PRIMARY KEY (id);
SHOW KEYS FROM member;
SHOW INDEX FROM member;

/*
删除非主键索引
ALTER TABLE member DROP INDEX 索引名;

删除主键索引
ALTER TABLE member DROP PRIMARY KEY;
*/
ALTER TABLE member DROP INDEX intro;
SHOW KEYS FROM member;
SHOW INDEX FROM member;

ALTER TABLE member DROP INDEX email;
SHOW KEYS FROM member;
SHOW INDEX FROM member;

ALTER TABLE member DROP INDEX tel;
SHOW KEYS FROM member;
SHOW INDEX FROM member;

#删除主键索引
ALTER TABLE member DROP PRIMARY key;
SHOW KEYS FROM member;
SHOW INDEX FROM member;

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值