边学边用Mysql(2):索引的作用

关于mysql索引最好的文章是这一篇:

MySQL索引分析和优化

里面涉及的东西就不说了,写写我实际碰到的一些东西吧。

1、加了索引以后性能能提高很多吗?
肯定啦。我们有一个表,数据大约有500万,大概结构是:
id  主键
md5 会重复
......

程序中会对md5进行频繁的查询,没有对md5创建索引前4000次查询需要30分钟,创建索引后不到一秒。

2、不禁用索引来导入海量数据会怎么样?
MyISAM数据库,没有禁用索引前,用程序从另一个数据库导入
250万笔数据(因为字段不同,不能直接导入)。要2个小时导入100万,6个小时才180万。
禁用索引后,不到2个小时全部完成。
××××××
使用load data导入数据,如果导入的表是MyISAM的,对于空表,MySQL会把所有的非唯一索引进行一次独立的处理,而对于非空的表则会边插入边建索引。
所以对于非空的MyISAM表,需要用alter table xxx disable keys禁用索引,导入完成之后再用alter table xxx enable keys打开。
对于innodb,从测试的结果看无论表中是否已有记录,索引都是单独处理的,所以无需禁用索引。

使用INSERT,应该利用允许在单个语句中指定多行的形式
INSERT INTO table(a,b,c) values(1,2,3),(4,5,6),(...)...
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值