当前位置: 首页 > news >正文

济南网站模板清新太和做网站

济南网站模板,清新太和做网站,开发小程序的平台,家庭装修设计软件哪个好用转载 http://www.jb51.net/article/5620.htm MySQL支持的两种主要表存储格式MyISAM#xff0c;InnoDB#xff0c;上个月做个项目时#xff0c;先使用了InnoDB#xff0c;结果速度特别慢#xff0c;1秒钟只能插入10几条。后来换成MyISAM格式#xff0c;一秒钟插入上万条。…转载 http://www.jb51.net/article/5620.htm   MySQL支持的两种主要表存储格式MyISAMInnoDB上个月做个项目时先使用了InnoDB结果速度特别慢1秒钟只能插入10几条。后来换成MyISAM格式一秒钟插入上万条。当时决定这两个表的性能也差别太大了吧。后来自己推测不应该差别这么慢估计是写的插入语句有问题决定做个测试测试环境Redhat Linux94CPU内存2GMySQL版本为4.1.6-gamma-standard测试程序PythonPython-MySQL模块。测试方案1、MyISAM格式分别测试事务和不用事务两种情况2、InnoDB格式分别测试AutoCommit1不用begin transaction和用begin transaction模式     AutoCommit0 不用begin transaction和用begin transaction模式四种情况。 测试方法为插入10000条记录。为了测试不互相影响单独建立了专用的测试表建表语句如下1、MyISAM不用事务表CREATE TABLE MyISAM_NT (  TableId int(11) NOT NULL default 0,  TableString varchar(21) NOT NULL default ) ENGINEMyISAM; 2、MyISAM用事务表:CREATE TABLE MyISAM_TS (  TableId int(11) NOT NULL default 0,  TableString varchar(21) NOT NULL default ) ENGINEMyISAM; 3、InnoDB关闭AutoCommit不用事务:CREATE TABLE INNODB_NA_NB (  TableId int(11) NOT NULL default 0,  TableString varchar(21) NOT NULL default ) ENGINEInnoDB; 4、InnoDB关闭AutoCommit用事务:CREATE TABLE INNODB_NA_BE (  TableId int(11) NOT NULL default 0,  TableString varchar(21) NOT NULL default ) ENGINEInnoDB; 5、InnoDB开启AutoCommit不用事务:CREATE TABLE INNODB_AU_NB (  TableId int(11) NOT NULL default 0,  TableString varchar(21) NOT NULL default ) ENGINEInnoDB; 6、InnoDB开启AutoCommit用事务:CREATE TABLE INNODB_AU_BE (  TableId int(11) NOT NULL default 0,  TableString varchar(21) NOT NULL default ) ENGINEInnoDB; 测试的Python脚本如下 #!/usr/bin/env PythonMyISAM,InnoDB性能比较作者空心菜Invalid时间2004-10-22import MySQLdb import sysimport osimport stringimport time c None testtables [(MyISAM_NT,None,0),             (MyISAM_TS,None,1),             (INNODB_NA_NB,0,0),             (INNODB_NA_BE,0,1),             (INNODB_AU_NB,1,0),             (INNODB_AU_BE,1,1)             ] def BeginTrans(): print ExecSQL:BEGIN;    c.execute(BEGIN;)    return def Commit():    print ExecSQL:COMMIT;    c.execute(COMMIT;)    return def AutoCommit(flag):    print ExecSQL:Set AUTOCOMMIT str(flag)    c.execute(Set AUTOCOMMIT str(flag))    returndef getcount(table):    #print  ExecSQL:select count(*) from table    c.execute(select count(*) from table)    return c.fetchall()[0][0] def AddTable (Table,TableId,TableString): sql INSERT INTO Table(TableId, TableString) VALUES( TableId , TableString )    try:        c.execute(sql)    except MySQLdb.OperationalError,error:        print AddTable Error:,error        return -1;    return c.rowcount def main(): argv sys.argv if len(argv) 2:        print Usage:,argv[0], TableId TestCount \n        sys.exit(1)    global c        #mysql访问cursor     db_host localhost    db_name demo    db_user root    db_user_passwd     print Config:[%s %s/%s %s] DB\n%(db_host,db_user,db_user_passwd,db_name)    if len(argv) 2:        tableid argv[1]        testcount int(argv[2])   # for test in testtables:        #每次操作前都重写建立数据库连接            try:            mdb MySQLdb.connect(db_host, db_user, db_user_passwd, db_name)         except MySQLDb.OperationalError,error:            print Connect Mysql[%s %s/%s %s] DB Error:%(db_host,db_user,db_user_passwd,db_name),error,\n            sys.exit(1)        else:            c mdb.cursor()        table,autocommit,trans test        starttime time.time()        print table, ,time.strftime(%y-%m-%d %H:%M:%S,time.localtime()) if autocommit ! None:            AutoCommit(autocommit)        if trans 1:            BeginTrans() for i in xrange(testcount):            tablestring %020d%i            if (AddTable(table,tableid,tablestring)1):                print AddTable Error,tablestring        if trans 1:            Commit()        print time.strftime(%y-%m-%d %H:%M:%S,time.localtime())        endtime time.time()        usedtime endtime-starttime print table,count:,getcount(table), used time:,usedtime        c.close()        mdb.close() if __name__ __main__:    main()测试结果如下Config:[localhost root/ demo] DB MyISAM_NT   04-10-22 16:33:2404-10-22 16:33:26MyISAM_NT count: 10000  used time: 2.1132440567MyISAM_TS   04-10-22 16:33:26ExecSQL:BEGIN;ExecSQL:COMMIT;04-10-22 16:33:29MyISAM_TS count: 10000  used time: 2.65475201607INNODB_NA_NB   04-10-22 16:33:29ExecSQL:Set AUTOCOMMIT 004-10-22 16:33:31INNODB_NA_NB count: 10000  used time: 2.51947999001INNODB_NA_BE   04-10-22 16:33:31ExecSQL:Set AUTOCOMMIT 0ExecSQL:BEGIN;ExecSQL:COMMIT;04-10-22 16:33:35INNODB_NA_BE count: 10000  used time: 3.85625100136INNODB_AU_NB   04-10-22 16:33:35ExecSQL:Set AUTOCOMMIT 104-10-22 16:34:19INNODB_AU_NB count: 10000  used time: 43.7153041363INNODB_AU_BE   04-10-22 16:34:19ExecSQL:Set AUTOCOMMIT 1ExecSQL:BEGIN;ExecSQL:COMMIT;04-10-22 16:34:22INNODB_AU_BE count: 10000  used time: 3.14328193665结论由此得知影响速度的主要原因是AUTOCOMMIT默认设置是打开的我当时的程序没有显式调用BEGIN;开始事务导致每插入一条都自动Commit严重影响了速度。算来也是个低级错误 相关参考http://dev.mysql.com/doc/mysql/en/COMMIT.htmlhttp://dev.mysql.com/doc/mysql/en/InnoDB_and_AUTOCOMMIT.html转载于:https://www.cnblogs.com/yingjie13/p/4273238.html
http://www.yutouwan.com/news/69598/

相关文章:

  • 营销网站建设是什么意思重庆做网站建设的公司
  • 西部数码怎么上传网站网站这么做
  • 做网站卖酒随州网站建设学习
  • wordpress自助建站网站建设捌金手指下拉一
  • 青岛手机建站哪家好事件营销的步骤
  • 网站图片切换代码护理专业主要学什么
  • 做投标的在什么网站找信息网站开发和推广财务预算
  • 汉中市建设工程造价信息seo网站优化方案书
  • 品牌展示榜ui做的好的网站政务公开微信网站开发方案书
  • 定制网站为什么贵企业网站源码生成
  • 网站怎么做分类聚合上海知名的广告公司
  • 网站建设 客户定位1元涨1000粉丝网站
  • 郑州高端网站案例国外flash网站
  • 营销型网站报价明细空间qq
  • 网站图片等比缩小做网站的没有进项票怎么办
  • 成都保障房中心官方网站网页设计速成班培训
  • 建网站哪个好 优帮云合肥装饰公司前十名
  • 报告总结网站建设实验阜阳讯拓网站建设
  • 网站建设及维护服务技术指标外贸建设网站
  • 方维网站建设铁威马 Nas 做网站
  • 德州网站建设技术支持 石家庄网站建设
  • 机关单位网站建设申请商贸有限公司的经营范围
  • 站长之家点击进入安卓手机性能优化软件
  • 网站建设项目标书建设工程教育官方网站
  • 北京建设工程造价管理协会网站青岛免费建网站
  • wordpress 全站过滤如果做夺宝网站
  • 在百度上建网站公司官网怎么建立
  • 发现了一个做字素的网站mil后缀网站
  • 网站开发和建设用户体验较好的网站
  • 南宁市兴宁区建设局网站网页界面设计与制作书籍