<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LAVA WORLD &#187; InnoDB</title>
	<atom:link href="http://www.vpnall.com/tag/innodb/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vpnall.com</link>
	<description>又一个森林Q群:52130297(IT聊天群)</description>
	<lastBuildDate>Fri, 03 Sep 2010 06:42:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>[转]MySQL中MyISAM引擎与InnoDB引擎性能简单测试</title>
		<link>http://www.vpnall.com/2009/05/%e8%bd%acmysql%e4%b8%admyisam%e5%bc%95%e6%93%8e%e4%b8%8einnodb%e5%bc%95%e6%93%8e%e6%80%a7%e8%83%bd%e7%ae%80%e5%8d%95%e6%b5%8b%e8%af%95/</link>
		<comments>http://www.vpnall.com/2009/05/%e8%bd%acmysql%e4%b8%admyisam%e5%bc%95%e6%93%8e%e4%b8%8einnodb%e5%bc%95%e6%93%8e%e6%80%a7%e8%83%bd%e7%ae%80%e5%8d%95%e6%b5%8b%e8%af%95/#comments</comments>
		<pubDate>Mon, 25 May 2009 13:40:19 +0000</pubDate>
		<dc:creator>lava</dc:creator>
				<category><![CDATA[系统]]></category>
		<category><![CDATA[InnoDB]]></category>
		<category><![CDATA[MyISAM]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[测试]]></category>

		<guid isPermaLink="false">http://www.vpnall.com/?p=234</guid>
		<description><![CDATA[原文:http://blog.csdn.net/heiyeshuwu/archive/2007/04/10/1559640.aspx
[硬件配置]
CPU : AMD2500+ (1.8G)
内存: 1G/现代
硬盘: 80G/IDE
[软件配置]
OS : Windows XP SP2
SE : PHP5.2.1
DB : MySQL5.0.37
Web: IIS6
[MySQL表结构]


CREATE TABLE `m... ]]></description>
			<content:encoded><![CDATA[<p>原文:<span>http://blog.csdn.net/heiyeshuwu/archive/2007/04/10/1559640.aspx</span></p>
<p><span>[硬件配置]</span><br />
CPU : AMD2500+ (1.8G)<br />
内存: 1G/现代<br />
硬盘: 80G/IDE</p>
<p><span>[软件配置]</span><br />
OS : Windows XP SP2<br />
SE : PHP5.2.1<br />
DB : MySQL5.0.37<br />
Web: IIS6</p>
<p><span>[MySQL表结构]</span></p>
<div>
<div><span><br />
</span><span>CREATE</span><span> </span><span>TABLE</span><span> `myisam` (<br />
  `id` </span><span>int</span><span>(</span><span>11</span><span>) </span><span>NOT</span><span> </span><span>NULL</span><span> auto_increment,<br />
  `name` </span><span>varchar</span><span>(</span><span>100</span><span>) </span><span>default</span><span> </span><span>NULL</span><span>,<br />
  `content` </span><span>text</span><span>,<br />
  </span><span>PRIMARY</span><span> </span><span>KEY</span><span>  (`id`)<br />
) ENGINE</span><span>=</span><span>MyISAM </span><span>DEFAULT</span><span> CHARSET</span><span>=</span><span>gbk;</p>
<p></span><span>CREATE</span><span> </span><span>TABLE</span><span> `innodb` (<br />
  `id` </span><span>int</span><span>(</span><span>11</span><span>) </span><span>NOT</span><span> </span><span>NULL</span><span> auto_increment,<br />
  `name` </span><span>varchar</span><span>(</span><span>100</span><span>) </span><span>default</span><span> </span><span>NULL</span><span>,<br />
  `content` </span><span>text</span><span>,<br />
  </span><span>PRIMARY</span><span> </span><span>KEY</span><span>  (`id`)<br />
) ENGINE</span><span>=</span><span>InnoDB </span><span>DEFAULT</span><span> CHARSET</span><span>=</span><span>gbk;</span></div>
</div>
<p><span>[数据内容]</span></p>
<p>$name = &#8220;heiyeluren&#8221;;<br />
$content = &#8220;MySQL支持数个存储引擎作为对不同表的类型的处理器。MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎：· MyISAM管理非事务表。它提供高速存储和检索，以及全文搜索能力。MyISAM在所有MySQL配置里被支持，它是默认的存储引擎，除非你配置MySQL默认使用另外一个引擎。 ·MEMORY存储引擎提供“内存中”表。MERGE存储引擎允许集合将被处理同样的MyISAM表作为一个单独的表。就像MyISAM一样，MEMORY和MERGE存储引擎处理非事务表，这两个引擎也都被默认包含在MySQL中。 释：MEMORY存储引擎正式地被确定为HEAP引擎。· InnoDB和BDB存储引擎提供事务安全表。BDB被包含在为支持它的操作系统发布的MySQL-Max二进制分发版里。InnoDB也默认被包括在所有MySQL 5.1二进制分发版里，你可以按照喜好通过配置MySQL来允许或禁止任一引擎。·EXAMPLE存储引擎是一个“存根”引擎，它不做什么。你可以用这个引擎创建表，但没有数据被存储于其中或从其中检索。这个引擎的目的是服务，在MySQL源代码中的一个例子，它演示说明如何开始编写新存储引擎。同样，它的主要兴趣是对开发者。&#8221;;</p>
<p><span>[插入数据-1] (innodb_flush_log_at_trx_commit=1)</span><br />
MyISAM 1W：3/s<br />
InnoDB 1W：219/s</p>
<p>MyISAM 10W：29/s<br />
InnoDB 10W：2092/s</p>
<p>MyISAM 100W：287/s<br />
InnoDB 100W：没敢测试</p>
<p><span>[插入数据-2] (innodb_flush_log_at_trx_commit=0)</span><br />
MyISAM 1W：3/s<br />
InnoDB 1W：3/s</p>
<p>MyISAM 10W：30/s<br />
InnoDB 10W：29/s</p>
<p>MyISAM 100W：273/s<br />
InnoDB 100W：423/s</p>
<p><span>[插入数据3] (innodb_buffer_pool_size=1024M)</span><br />
InnoDB 1W：3/s<br />
InnoDB 10W：33/s<br />
InnoDB 100W：607/s</p>
<p><span>[插入数据4] (innodb_buffer_pool_size=256M, innodb_flush_log_at_trx_commit=1, set autocommit=0)</span></p>
<p>InnoDB 1W：3/s<br />
InnoDB 10W：26/s<br />
InnoDB 100W：379/s</p>
<p><span>[MySQL 配置文件] (缺省配置)</span></p>
<div>
<div><span># MySQL Server Instance Configuration File<br />
</span><span>[</span><span>client</span><span>]</span><span><br />
port</span><span>=</span><span>3306</span><span></p>
<p></span><span>[</span><span>mysql</span><span>]</span><span><br />
default-character-set</span><span>=</span><span>gbk</p>
<p></span><span>[</span><span>mysqld</span><span>]</span><span><br />
port</span><span>=</span><span>3306</span><span><br />
basedir</span><span>=</span><span>&#8220;</span><span>C:/mysql50/</span><span>&#8220;</span><span><br />
datadir</span><span>=</span><span>&#8220;</span><span>C:/mysql50/Data/</span><span>&#8220;</span><span><br />
default-character-set</span><span>=</span><span>gbk<br />
default-storage-engine</span><span>=</span><span>INNODB<br />
sql-mode</span><span>=</span><span>&#8220;</span><span>STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION</span><span>&#8220;</span><span><br />
max_connections</span><span>=</span><span>100</span><span></p>
<p>query_cache_size</span><span>=</span><span>0</span><span><br />
table_cache</span><span>=</span><span>256</span><span><br />
tmp_table_size</span><span>=</span><span>50M<br />
thread_cache_size</span><span>=</span><span>8</span><span><br />
myisam_max_sort_file_size</span><span>=</span><span>100G<br />
myisam_max_extra_sort_file_size</span><span>=</span><span>100G<br />
myisam_sort_buffer_size</span><span>=</span><span>100M<br />
key_buffer_size</span><span>=</span><span>82M<br />
read_buffer_size</span><span>=</span><span>64K<br />
read_rnd_buffer_size</span><span>=</span><span>256K<br />
sort_buffer_size</span><span>=</span><span>256K</p>
<p>innodb_additional_mem_pool_size</span><span>=</span><span>4M<br />
innodb_flush_log_at_trx_commit</span><span>=</span><span>1</span><span><br />
innodb_log_buffer_size</span><span>=</span><span>2M<br />
innodb_buffer_pool_size</span><span>=</span><span>159M<br />
innodb_log_file_size</span><span>=</span><span>80M<br />
innodb_thread_concurrency</span><span>=</span><span>8</span></div>
</div>
<p><span>【总结】</span></p>
<p>可以看出在MySQL 5.0里面，MyISAM和InnoDB存储引擎性能差别并不是很大，针对InnoDB来说，影响性能的主要是 innodb_flush_log_at_trx_commit 这个选项，如果设置为1的话，那么每次插入数据的时候都会自动提交，导致性能急剧下降，应该是跟刷新日志有关系，设置为0效率能够看到明显提升，当然，同样你可以SQL中提交“SET AUTOCOMMIT = 0”来设置达到好的性能。另外，还听说通过设置innodb_buffer_pool_size能够提升InnoDB的性能，但是我测试发现没有特别明显的提升。</p>
<p>基本上我们可以考虑使用InnoDB来替代我们的MyISAM引擎了，因为InnoDB自身很多良好的特点，比如事务支持、存储过程、视图、行级锁定等等，在并发很多的情况下，相信InnoDB的表现肯定要比MyISAM强很多，当然，相应的在my.cnf中的配置也是比较关键的，良好的配置，能够有效的加速你的应用。</p>
<p>如果不是很复杂的Web应用，非关键应用，还是可以继续考虑MyISAM的，这个具体情况可以自己斟酌。</p>
<p><span>参考URL：</span><br />
<span>http://dev.mysql.com/doc/refman/5.1/zh/index.html</span><br />
<span>http://dev.mysql.com/doc/refman/5.1/zh/storage-engines.html#innodb</span></p>

	标签：<a href="http://www.vpnall.com/tag/innodb/" title="InnoDB" rel="tag">InnoDB</a>, <a href="http://www.vpnall.com/tag/myisam/" title="MyISAM" rel="tag">MyISAM</a>, <a href="http://www.vpnall.com/tag/mysql/" title="mysql" rel="tag">mysql</a>, <a href="http://www.vpnall.com/tag/%e6%b5%8b%e8%af%95/" title="测试" rel="tag">测试</a><br />

	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.vpnall.com/2009/05/%e9%98%b2%e6%ad%a2mysql%e8%bf%9e%e6%8e%a5%e6%95%b0%e8%bf%87%e5%a4%9a%e5%af%bc%e8%87%b4%e5%b4%a9%e6%ba%83/" title="防止mysql连接数过多导致崩溃 (2009-05-07)">防止mysql连接数过多导致崩溃</a> (0)</li>
	<li><a href="http://www.vpnall.com/2010/05/%e5%85%8d%e8%b4%b9mysql-guiheidisql/" title="免费MYSQL GUI:HeidiSQL (2010-05-22)">免费MYSQL GUI:HeidiSQL</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/05/%e8%bd%ac%e6%a0%b9%e6%8d%aestatus%e4%bf%a1%e6%81%af%e5%af%b9mysql%e6%9c%8d%e5%8a%a1%e5%99%a8%e8%bf%9b%e8%a1%8c%e4%bc%98%e5%8c%96/" title="[转]根据status信息对MySQL服务器进行优化 (2009-05-25)">[转]根据status信息对MySQL服务器进行优化</a> (0)</li>
	<li><a href="http://www.vpnall.com/2010/01/%e8%bd%ac%e5%9c%a8ubuntu-8-1%e4%b8%8a%e5%ae%89%e8%a3%9d%e9%85%8d%e7%bd%aefreeradius2-mysql-daloradius/" title="[转]在Ubuntu 8.1上安裝配置Freeradius2 + Mysql + Daloradius (2010-01-05)">[转]在Ubuntu 8.1上安裝配置Freeradius2 + Mysql + Daloradius</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/08/%e8%bd%ac%e5%8f%98%e6%80%81%e5%9c%b0%e7%8b%b1%e6%b5%8b%e8%af%95%ef%bc%81%e4%b8%83%e5%a4%a7%e9%85%b7%e5%88%91%e8%80%83%e9%aa%8c%e8%af%ba%e5%9f%ba%e4%ba%9a5800xm/" title="[转]变态地狱测试！七大酷刑考验诺基亚5800XM (2009-08-29)">[转]变态地狱测试！七大酷刑考验诺基亚5800XM</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/03/nginx_apache_mysql_php_memcached_squid/" title="[转]利用nginx+apache+mysql+php+memcached+squid搭建门户网站 (2009-03-09)">[转]利用nginx+apache+mysql+php+memcached+squid搭建门户网站</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/11/%e8%bd%acmysql-%e5%b8%b8%e7%94%a8%e5%87%bd%e6%95%b0/" title="[转]mysql 常用函数 (2009-11-27)">[转]mysql 常用函数</a> (0)</li>
	<li><a href="http://www.vpnall.com/2010/02/php%e5%8d%95%e4%be%8b%e6%a8%a1%e5%bc%8f%e7%9a%84mysql%e6%95%b0%e6%8d%ae%e8%ae%bf%e9%97%ae%e7%b1%bb/" title="php单例模式的mysql数据访问类 (2010-02-08)">php单例模式的mysql数据访问类</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.vpnall.com/2009/05/%e8%bd%acmysql%e4%b8%admyisam%e5%bc%95%e6%93%8e%e4%b8%8einnodb%e5%bc%95%e6%93%8e%e6%80%a7%e8%83%bd%e7%ae%80%e5%8d%95%e6%b5%8b%e8%af%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
