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

  • 相关阅读:
    zoj 3599 Game 博弈论
    hdu 2486/2580 / poj 3922 A simple stone game 博弈论
    hdu 1517 A Multiplication Game 博弈论
    hdu 4407 Sum 容斥原理
    hdu 4686 Arc of Dream
    hdu 4588 Count The Carries
    hdu 4586 Play the Dice
    C#学习(5)
    C#学习(4)
    C#学习(3)
  • 原文地址:https://www.cnblogs.com/yahle/p/848060.html
Copyright © 2011-2022 走看看