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

企业网站建设策划方案北京市工程信息网

企业网站建设策划方案,北京市工程信息网,网站购买域名,google adwords关键词工具MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是IndexedSequential Access Method (有索引的顺序访问方法)的缩写,它是存储记录和文件的标准方法.与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具.MyISAM表格可以被压缩,而且它们支持全文搜索.它们不是事务安全的…MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是IndexedSequential Access Method (有索引的顺序访问方法)的缩写,它是存储记录和文件的标准方法.与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具.MyISAM表格可以被压缩,而且它们支持全文搜索.它们不是事务安全的,而且也不支持外键InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.MyISAM和InnoDB的区别:InnoDB默认情况下的事务是打开的(set autocommit 0)就是说每插入一条记录时候,InnoDB类型的表都会把它当作一个单独的事务来处理.所以如果我们插入了10000条记录,而且没有将事务关闭,那么InnoDB类型的表会把它当作10000个事务来处理,此时插入的总时间是很多的,这个时候一定要首先把事务关掉再插入,这样的速度就很快了MySQL支持的两种主要表存储格式MyISAMInnoDB上个月做个项目时先使用了InnoDB结果速度特别慢1秒钟只能插入10几条。后来换成MyISAM格式一秒钟插入上万条。当时决定这两个表的性能也差别太大了吧。后来自己推测不应该差别这么慢估计是写的插入语句有问题决定做个测试测试环境RedhatLinux94CPU内存2GMySQL版本为4.1.6-gamma-standard测试程序PythonPython-MySQL模块。测试方案1、MyISAM格式分别测试事务和不用事务两种情况2、InnoDB格式分别测试AutoCommit1(不用begintransaction和用begin transaction模式)AutoCommit0 (不用begin transaction和用begintransaction模式)四种情况。测试方法为插入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 MySQLdbimport sysimport osimport stringimport timec Nonetesttables [(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;)returndef Commit():print ExecSQL:COMMIT;c.execute(COMMIT;)returndef AutoCommit(flag):print ExecSQL:Set Set ExecSQL:select count(*) from tablec.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:,errorreturn -1;return c.rowcountdef main():argv sys.argvif len(argv) 2:print Usage:,argv[0], TableId TestCount \nsys.exit(1)global c #mysql访问cursordb_host localhostdb_name demodb_user rootdb_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] DBError:%(db_host,db_user,db_user_passwd,db_name),error,\nsys.exit(1)else:c mdb.cursor()table,autocommit,trans teststarttime 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%iif (AddTable(table,tableid,tablestring)1):print AddTable Error,tablestringif trans 1:Commit()print time.strftime(%y-%m-%d %H:%M:%S,time.localtime())endtime time.time()usedtime endtime-starttimeprint table,count:,getcount(table), usedtime:,usedtimec.close()mdb.close()if __name__ __main__:main()测试结果如下Config:[localhost root/ demo] DBMyISAM_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://www.pierceye.com/news/146643/

相关文章:

  • 湖南基础建设投资集团网站做体育最好的网站
  • 上海php网站开发公司wordpress 邮件认证
  • 教做香肠的网站张家港专业网站建设
  • 园林建设网站营销型网站的建站步骤是什么意思
  • 招聘求职网站html模板正规的创业商机网
  • 预付网站建设费会计处理哪里建网站好
  • 做免费网站艺术学院网站建设管理办法
  • 做网站贵吗手机网站wap
  • linux建立网站做网站的应该怎么发广告
  • wordpress使用端口百度seo排名软
  • 用英文字母做网站关键词个人网站的设计与实现专业论文图像处理工具
  • 重庆企业网站推广流程php网站开发技术训练心得
  • 汽车销售网站学校建网站
  • 两台电脑一台做服务器 网站潍坊专业网站建设多少钱
  • 青岛科技街网站建设安徽 网站开发
  • 黑糖不苦建设的网站wordpress获取文章图片不显示
  • 美食网站建设的功能免费做简历的网站
  • 网站建设公司谁管手机如何创建网站
  • 可以自己做网站优化吗最好用的wordpress主题
  • 瓜子二手车网站开发智慧团建注册登记入口
  • 青岛网站开发建设安阳市商祺网络有限责任公司
  • 自己怎么做装修网站网站建设设计岗位职责
  • php语言 网站建设投资2 3万小生意
  • 全美网站开发微转app是用网站做的吗
  • 禹州 什么团购网站做的好广州网站建设程序开发
  • 成都市微信网站建设公司专业app开发
  • 郑州网站建设hndream神木网站设计公司
  • 关于网站集约化建设的讲话抓取网站访客qq号码
  • 南昌住房城市建设支行官方网站海洋网络提供网站建设
  • 网站外链建设的八大基本准则做网站卖得出去吗