zoukankan      html  css  js  c++  java
  • 优化MySQL插入数据

     

    优化MySQL插入数据

    表结构:6个字段,2个数值型,4个字符串型,字符型字段长度3~20个字符

    数据量:1000

    MySQL版本:4.1

    测试程序与MySQL服务器在同一台机器,单线程插入处理。

    优化方法1

    修改表的类型

           MySQL数据库表有两种类型,一种是支持事务处理,一种是不支持事务处理。MySQL在处理这两种表时,分别使用了不同类型的数据库引擎,因此数据库引擎在插入时效率不同,理论上说启用了事务功能后会比较慢。

    修改方法:在创建表时,指定表类型

    Create Table(

    ….. /*字段说明*/

    ) ENGINE=InnoDB

    红色部分为表类型,InnoDB表示带事务,MyISAM表示不带事务功能

    优化方法2

    一次插入多条数据

           MySQL通过一次执行插入多条数据,可以减少插入时间,提高效率,不过一次插入多条记录的SQL语法有点特别,貌似MS SQL Server不支持这样的语法:

    Insert into `table` values(data1),(data2),(data3)

           虽然可以将多次插入的数据一次插入,但是一次插入的量还是有限制的:拼接出的SQL语句字符串长度不能超过1M,记录数不限。不太清楚是MySQL限制还是MySQL.Data数据库访问组件的限制造成的。

    测试结果:

     

    带事务

    不带事务

    执行1000次一次插1条记录

    18s

    430ms

    执行1次一次插1000条记录

    100ms

    60ms

  • 相关阅读:
    MySQL函数大全
    Hibernate的理论知识点
    捕获异常
    重定向到其他的页面
    Jquery中val、text、html的区别
    条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
    inline-block元素的4px空白间距解决方案
    img标签中alt属性与title属性
    3像素文本偏移bug 解决方案
    google Ip
  • 原文地址:https://www.cnblogs.com/yahle/p/848060.html
Copyright © 2011-2022 走看看