读书频道 > 网站 > 网页设计 > MySQL入门很简单
18.3.4 优化插入记录的速度
12-07-31    叶孤城
收藏    我要投稿   

本文所属图书 > MySQL入门很简单

本书从初学者的角度出发,由浅入深,循序渐进地介绍了MySQL数据库应用与开发的相关知识。书中提供了大量操作MySQL数据库的示例,还提供了大量实例和上机实践内容,供读者演练。本书共分5篇。第1篇介绍数据库的基...立即去当当网订购
插入记录时,索引、唯一性校验都会影响到插入记录的速度。而且,一次插入多条记录和多次插入记录所耗费的时间是不一样的。根据这些情况,分别进行不同的优化。本小节将为读者介绍优化插入记录的速度的方法。
 
1.禁用索引
 
插入记录时,MySQL会根据表的索引对插入的记录进行排序。如果插入大量数据时,这些排序会降低插入记录的速度。为了解决这种情况,在插入记录之前先禁用索引。等到记录都插入完毕后再开启索引。禁用索引的语句如下:
 
ALTER TABLE 表名DISABLE KEYS ;
重新开启索引的语句如下:
 
ALTER TABLE 表名ENABLE KEYS ;
对于新创建的表,可以先不创建索引。等到记录都导入以后再创建索引。这样可以提高导入数据的速度。
 
2.禁用唯一性检查
 
插入数据时,MySQL会对插入的记录进行唯一性校验。这种校验也会降低插入记录的速度。可以在插入记录之前禁用唯一性检查。等到记录插入完毕后再开启。禁用唯一性检查的语句如下:
 
SET UNIQUE_CHECKS=0;
重新开启唯一性检查的语句如下:
 
SET UNIQUE_CHECKS=1;
3.优化INSERT语句
 
插入多条记录时,可以采取两种写INSERT语句的方式。第一种是一个INSERT语句插入多条记录。INSERT语句的情形如下:
 
INSERT  INTO  food  VALUES 
    (NULL,'EE果冻','EE果冻厂', 1.5 ,'2007', 2 ,'北京') , 
    (NULL,'FF咖啡','FF咖啡厂', 20 ,'2002', 5 ,'天津') , 
    (NULL,'GG奶糖','GG奶糖', 14 ,'2003', 3 ,'广东') ;
第二种是一个INSERT语句只插入一条记录,执行多个INSERT语句来插入多条记录。INSERT语句的情形如下:
 
INSERT INTO food VALUES (NULL,'EE果冻','EE
果冻厂', 1.5 ,'2007', 2 ,'北京'); 
INSERT INTO food VALUES (NULL,'FF咖啡','FF
咖啡厂', 20 ,'2002', 5 ,'天津'); 
INSERT INTO food VALUES (NULL,'GG奶糖','GG
奶糖', 14 ,'2003', 3 ,'广东');
第一种方式减少了与数据库之间的连接等操作,其速度比第二种方式要快。
 
技巧:当插入大量数据时,建议使用一个INSERT语句插入多条记录的方式。而且,如果能用LOAD DATA INFILE语句,就尽量用LOAD DATA INFILE语句。因为LOAD DATA INFILE语句导入数据的速度比INSERT语句的速度快
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站