<?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>DBAlife &#187; mysql</title>
	<atom:link href="http://www.dbalife.com/archives/tag/mysql/feed" rel="self" type="application/rss+xml" />
	<link>http://www.dbalife.com</link>
	<description>网站系统架构实践</description>
	<lastBuildDate>Wed, 27 Jul 2011 09:57:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>MySQL Slow Query</title>
		<link>http://www.dbalife.com/archives/539.html</link>
		<comments>http://www.dbalife.com/archives/539.html#comments</comments>
		<pubDate>Wed, 19 Jan 2011 17:38:32 +0000</pubDate>
		<dc:creator>skywalker</dc:creator>
				<category><![CDATA[DB性能优化]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[调优]]></category>

		<guid isPermaLink="false">http://www.dbalife.com/archives/539.html</guid>
		<description><![CDATA[转载自http://www.perfgeeks.com/?p=365 优化MySQL最重要的一部分工作是先确定”有问题”的查询语句。只有先找出这些查询较慢的sql查询(执行时间较长)，我们才能进一步分析原因并且优化它。MySQL为我们提供了Slow Query Log记录功能，它能记录执行时间超过了特定时长的查询。分析Slow Query Log有助于帮我们找到”问题”查询。 记录slow queries 首先，我们需要查看mysql server版本号，以及是否配置启用了slow query log。查看mysql server版本号，主要是一些功能以及配置依赖于mysql server 版本号 查看mysql server版本号 $echo "status" &#124;mysql &#124;grep "Server version" Server version: 5.1.38-log Source distribution 不同的MySQL版本，设定与功能略有不同。 检查当前服务器有没有在记录slow query $mysqladmin var &#124;grep "log_slow" &#124;tr -d "&#124;" log_slow_queries OFF 当log_slow_queries是ON时，才表示已经启用了记录slow query功能。默认是不记录slow query的。 启用slow query日志 #//将下列配置放到my.cnf中，查看my.cnf位置可以使用命令ps -ef &#124;grep mysqld_safe [mysqld] log-slow-queries = /var/lib/mysql/slow-queries.log long_query_time = [...]
Related posts:<ol>
<li><a href='http://www.dbalife.com/archives/522.html' rel='bookmark' title='MySQL5.5复制/同步的新特性及改进'>MySQL5.5复制/同步的新特性及改进</a></li>
<li><a href='http://www.dbalife.com/archives/521.html' rel='bookmark' title='MySQL Replication基本原理'>MySQL Replication基本原理</a></li>
<li><a href='http://www.dbalife.com/archives/133.html' rel='bookmark' title='PIX logging Architecture所需perl module的几点注意'>PIX logging Architecture所需perl module的几点注意</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div class="entry">
<p>转载自http://www.perfgeeks.com/?p=365</p>
<hr style="width: 100%; height: 2px;" />
<p>优化MySQL最重要的一部分工作是先确定”有问题”的查询语句。只有先找出这些查询较慢的sql查询(执行时间较长)，我们才能进一步分析原因并且优化它。MySQL为我们提供了Slow  Query Log记录功能，它能记录执行时间超过了特定时长的查询。分析Slow Query Log有助于帮我们找到”问题”查询。</p>
<h2>记录slow queries</h2>
<p>首先，我们需要查看mysql server版本号，以及是否配置启用了slow query log。查看mysql  server版本号，主要是一些功能以及配置依赖于mysql server 版本号<br />
<strong>查看mysql  server版本号</strong></p>
<div class="codesnip-container">
<pre style="font-family: monospace;" class="bash codesnip"><span class="re1">$echo</span> <span class="st0">"status"</span> <span class="sy0">|</span>mysql <span class="sy0">|</span><span class="kw2">grep</span> <span class="st0">"Server version"</span>
Server version:         5.1.38-log Source distribution</pre>
</div>
<p>不同的MySQL版本，设定与功能略有不同。<br />
<strong>检查当前服务器有没有在记录slow query</strong></p>
<div class="codesnip-container">
<pre style="font-family: monospace;" class="bash codesnip"><span class="re1">$mysqladmin</span> var <span class="sy0">|</span><span class="kw2">grep</span> <span class="st0">"log_slow"</span> <span class="sy0">|</span><span class="kw2">tr</span> <span class="re5">-d</span> <span class="st0">"|"</span>
log_slow_queries	OFF</pre>
</div>
<p>当log_slow_queries是ON时，才表示已经启用了记录slow query功能。默认是不记录slow  query的。<br />
<strong>启用slow query日志</strong></p>
<div class="codesnip-container">
<pre style="font-family: monospace;" class="bash codesnip"><span class="co0">#//将下列配置放到my.cnf中，查看my.cnf位置可以使用命令ps -ef |grep mysqld_safe</span>
<span class="br0">[</span>mysqld<span class="br0">]</span>
log-slow-queries	= <span class="sy0">/</span>var<span class="sy0">/</span>lib<span class="sy0">/</span>mysql<span class="sy0">/</span>slow-queries.log
long_query_time		= <span class="nu0">1</span>
log-queries-not-using-indexes
log-slow-admin-statements</pre>
</div>
<p>上面的配置打开了slow query日志,将会捕获了执行时间超过了1秒的查询，包括执行速度较慢的管理命令(比如OPTIMEZE  TABLE),并且记录了没有使用索引的查询。这些SQL，都会被记录到log-slow-queries指定的文件/var/lib/mysql/slow-queries.log文件中。</p>
<ul>
<ol>log-slow-queries &lt;slow_query_log_file&gt;<br />
存放slow query日志的文件。你必须保证mysql  server进程mysqld_safe进程用户对该文件有w权限。</ol>
<ol>long_query_time<br />
如果query  time超过了该值，则认为是较慢查询，并被记录下来。单位是秒，最小值是1,默认值是10秒。10秒对于大多数应用来讲，太长了。我们推荐从3秒开始，依次减少，每次都找出最”昂贵”的10条SQL语句并且优化他们。日复一日，一步一步优化。一次性找出很多条SQL语句，对于优化来讲，意义并不大。</ol>
<ol>log-queries-not-using-indexes<br />
MySQL会将没有使用索引的查询记录到slow  query日志中。无论它执行有多快，查询语句没有使用索引，都会被记录。有的时候，有些没有使用引索的查询非常快(例如扫描很小的表)，但也有可能导致服务器变慢，甚至还会使用大量的磁盘空间。</ol>
<ol>log-slow-admin-statements<br />
一些管理指令，也会被记录。比如OPTIMEZE TABLE, ALTER  TABLE等等。</ol>
</ul>
<h2>日志文件</h2>
<p>我们可以通过tail -f查看日志文件。</p>
<div class="codesnip-container">
<pre style="font-family: monospace;" class="bash codesnip"><span class="re1">$tail</span> <span class="re5">-f</span> <span class="sy0">/</span>var<span class="sy0">/</span>lib<span class="sy0">/</span>mysql<span class="sy0">/</span>slow-queries.log
<span class="co0"># Time: 110107 16:22:11</span>
<span class="co0"># User@Host: root[root] @ localhost []</span>
<span class="co0"># Query_time: 9.869362  Lock_time: 0.000035 Rows_sent: 1  Rows_examined: 6261774</span>
SET <span class="re2">timestamp</span>=<span class="nu0">1294388531</span>;
<span class="kw1">select</span> count<span class="br0">(</span><span class="sy0">*</span><span class="br0">)</span> from ep_friends;</pre>
</div>
<p>第一行,SQL查询执行的时间<br />
第二行,执行SQL查询的连接信息<br />
第三行记录了一些我们比较有用的信息<br />
&nbsp;&nbsp;&nbsp;&nbsp;<strong>Query_time</strong>  SQL执行的时间,越长则越慢<br />
&nbsp;&nbsp;&nbsp;&nbsp;<strong>Lock_time</strong>  在MySQL服务器阶段(不是在存储引擎阶段)等待表锁时间<br />
&nbsp;&nbsp;&nbsp;&nbsp;<strong>Rows_sent</strong>  查询返回的行数<br />
&nbsp;&nbsp;&nbsp;&nbsp;<strong>Rows_examined</strong> 查询检查的行数<br />
Slow  Query日志，虽然帮助你记录了那些执行过了的SQL语句。但它不是万能的，意义可能没有你想象的那么大。它只告诉了你哪些语句慢，但是为什么慢?具体原因，还是需要你自己去分析，不断的调试。也许，你只需要换一条更有效的sql语句，也许你只需简单地增加一个索引，但也有可能你需要调整你应用程序的设计方案。比如，上面那条语句是很明显，它检查了600多万行数据。不幸的是，并不是每条语句都这么明显。也许还有别的原因，比如:<br />
*锁表了，导致查询处于等态状态。lock_time显示了查询等待锁被翻译的时间<br />
*数据或索引没有被缓存。常见于第一次启动服务器或者服务器没有调优<br />
*备份数据库，I/O变慢<br />
*也许同时运行了其它的查询，减少了当前查询</p>
<p>所以,不要过于紧张日志文件某条记录，而应该理性地审记，找出真正的原因。如果经常出现的slow  query需要特别注意。如果个别出现，则做一些常规检查即可。我们建议，统计并且形成基准报告，进行比较排除，比胡乱瞎撞有用。希望大家不要在这部分过于浪费时间与精力。</p>
<h2>线上记录slow query</h2>
<p>上文的配置需要重启mysql  server进程mysqld才会生效。但是很多时候，尤其是产品运营环境，不希望每次修改都需要重新启动mysql服务器，也希望能在某些特定时间记录。MySQL5.1给我们提供了更为灵活的运行时控制，使得你不必重新启动mysql服务器，也能选择性地记录或者不记录某些slow  queries。</p>
<p>MySQL5.1中，提供了全局变量slow_query_log、slow_query_log_file可以灵活地控制enable/disable慢查询。同时可以通过long_query_time设置时间</p>
<div class="codesnip-container">
<pre style="font-family: monospace;" class="bash codesnip"><span class="co0">#//停用slow query记录</span>
<span class="co0">#注意:设置了slow_query_log全局变量, log_slow_queries也会隐性地跟着改变</span>
mysql<span class="sy0">&gt;</span><span class="kw1">set</span> global <span class="re2">slow_query_log</span>=OFF</pre>
</div>
<p>不幸运的是,在MySQL5.0并没有提供类似的全局变量来灵活控制，但是我们可以通过将long_query_time设置得足够大来避免记录某些查询语句。比如</p>
<div class="codesnip-container">mysql&gt;set global long_query_time = 3600;</div>
<p>MySQL5.0, 不关服务的情况下，希望不记录日志的办法是将日志文件成为/dev/null的符号链接(symbolic  link)。注意:你只需要在改变后运行FLUSH LOGS以确定MYSQL释放当前的日志文件描述符，重新把日志记录到/dev/null</p>
<p>和MySQL5.0不同,MySQL5.1可以在运行时改变日记行为，将日志记录到数据库表中。只要将mysql全局变量log_output设置为TABLE即可。MySQL会将日志分别记录到表mysql.gengera_log和mysql.slow_log二张表中。但是，我们推荐将日志记录在日记文件中。</p>
<div class="codesnip-container">mysql&gt; show variables like  ‘log_output’\G<br />
Variable_name: log_output<br />
Value: FILE<br />
mysql&gt;set  global log_output=’table’;</div>
<h2>缺陷与审记</h2>
<p>虽然记录了slow query能够帮助你优化产品。但是MySQL目前版本，还有几大蹩足的地方。<br />
1.MySQL5.0版本,  long_query_time时间粒度不够细,最小值为1秒。对于高并发性能的网页脚本而言，1秒出现的意义不大。即出现1秒的查询比较少。直到mysql5.1.21才提供更细粒度的long_query_time设定.<br />
2.不能将服务器执行的所有查询记录到慢速日志中。虽然MySQL普通日志记录了所有查询，但是它们是解析查询之前就记录下来了。这意味着普通日志没办法包含诸如执行时间，锁表时间，检查行数等信息。<br />
3.如果开启了log_queries_not_using_indexes选项，slow  query日志会充满过多的垃圾日志记录，这些快且高效的全表扫描查询(表小)会冲掉真正有用的slow queries记录。比如select * from  category这样的查询也会被记录下来。</p>
<p>通过<a href="http://www.mysqlperformanceblog.com/2007/07/18/microslow-patch-for-5120/">microslow-patch</a>补丁可使用更细的时间粒度，和记录所有执行过的sql语句。不过，使用这个补订不得不自己编译MySQL，出于稳定性考滤，我们推荐在开发测试环境，可以打上这个补丁，享受这个补丁带来的便利。在运营环境尽量不要这么做…</p>
<p>MySQL自带了mysqldumpslow工具用来分析slow query日志，除此之外，还有一些好用的开源工具。比如<a href="http://myprofi.sourceforge.net/index.shtml">MyProfi</a>、<a href="http://code.google.com/p/mysql-log-filter/">mysql-log-filter</a>，当然还有<a href="http://hackmysql.com/mysqlsla">mysqlsla</a></p>
</div>
<p>Related posts:<ol>
<li><a href='http://www.dbalife.com/archives/522.html' rel='bookmark' title='MySQL5.5复制/同步的新特性及改进'>MySQL5.5复制/同步的新特性及改进</a></li>
<li><a href='http://www.dbalife.com/archives/521.html' rel='bookmark' title='MySQL Replication基本原理'>MySQL Replication基本原理</a></li>
<li><a href='http://www.dbalife.com/archives/133.html' rel='bookmark' title='PIX logging Architecture所需perl module的几点注意'>PIX logging Architecture所需perl module的几点注意</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.dbalife.com/archives/539.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>64位centOS编译php5.3时的小问题</title>
		<link>http://www.dbalife.com/archives/389.html</link>
		<comments>http://www.dbalife.com/archives/389.html#comments</comments>
		<pubDate>Wed, 07 Jul 2010 05:48:33 +0000</pubDate>
		<dc:creator>skywalker</dc:creator>
				<category><![CDATA[操作系统]]></category>
		<category><![CDATA[系统管理]]></category>
		<category><![CDATA[64bit]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[libmysqlclient]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.dbalife.com/?p=389</guid>
		<description><![CDATA[64位CentOS5.5在编译php5.3时，提示找不到libmysqlclient， checking for MING support... no checking for mSQL support... no checking for MSSQL support via FreeTDS... no checking for MySQL support... yes, shared checking for specified location of the MySQL UNIX socket... no checking for MySQL UNIX socket location... no configure: error: Cannot find libmysqlclient under /usr. Note that the MySQL client library is [...]
Related posts:<ol>
<li><a href='http://www.dbalife.com/archives/133.html' rel='bookmark' title='PIX logging Architecture所需perl module的几点注意'>PIX logging Architecture所需perl module的几点注意</a></li>
<li><a href='http://www.dbalife.com/archives/409.html' rel='bookmark' title='heartbeat ha.cf 中文注解'>heartbeat ha.cf 中文注解</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>64位CentOS5.5在编译php5.3时，提示找不到libmysqlclient，</p>
<p>checking for MING support... no<br />
checking for mSQL support... no<br />
checking for MSSQL support via FreeTDS... no<br />
checking for MySQL support... yes, shared<br />
checking for specified location of the MySQL UNIX socket... no<br />
checking for MySQL UNIX socket location... no<br />
configure: error: Cannot find libmysqlclient under /usr.<br />
Note that the MySQL client library is not bundled anymore!</p>
<p>这是由于搜索路径有误，需在编译时增加一个参数： "--with-libdir=lib64"</p>
<p>Related posts:<ol>
<li><a href='http://www.dbalife.com/archives/133.html' rel='bookmark' title='PIX logging Architecture所需perl module的几点注意'>PIX logging Architecture所需perl module的几点注意</a></li>
<li><a href='http://www.dbalife.com/archives/409.html' rel='bookmark' title='heartbeat ha.cf 中文注解'>heartbeat ha.cf 中文注解</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.dbalife.com/archives/389.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mysql中的STRICT_TRANS_TABLES</title>
		<link>http://www.dbalife.com/archives/339.html</link>
		<comments>http://www.dbalife.com/archives/339.html#comments</comments>
		<pubDate>Fri, 15 Jan 2010 19:39:52 +0000</pubDate>
		<dc:creator>skywalker</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[数据库管理]]></category>
		<category><![CDATA[软件开发]]></category>
		<category><![CDATA[my.ini]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[STRICT_TRANS_TABLES]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.dbalife.com/?p=339</guid>
		<description><![CDATA[在调试php symfony，加载fixture数据时，遇到了错误： SQLSTATE[HY000]: General error: 1366 Incorrect integer value: 'log' for column 'tasklog_id' at row 1 这是因为mysql5.5中默认启用了STRICT_TRANS_TABLES参数。 STRICT_TRANS_TABLES的工作方式： 　　· 对于事务性存储引擎，在语句中任何地方出现的不良数据值均会导致放弃语句并执行回滚。         · 对于非事务性存储引擎，如果错误出现在要插入或更新的第1行，将放弃语句。（在这种情况下，可以认为语句未改变表，就像事务表一样）。首行后出现的错误不会导致放弃语句。取而代之的是，将调整不良数据值，并给出告警，而不是错误。换句话讲，使用STRICT_TRANS_TABLES后，错误值会导致MySQL执行回滚操作，如果可以，所有更新到此为止。 　　要想执行更严格的检查，请启用STRICT_ALL_TABLES。除了非事务性存储引擎，它与STRICT_TRANS_TABLES等同，即使当不良数据出现在首行后的其他行，所产生的错误也会导致放弃语句。这意味着，如果错误出现在非事务性表多行插入或更新过程的中途，仅更新部分结果。前面的行将完成插入或更新，但错误出现点后面的行则不然。 因此，解决方法就是在my.ini里把STRICT_TRANS_TABLES关掉 ?View Code C#Set the SQL mode to strict #sql-mode=&#34;STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION&#34; sql-mode=&#34;NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION&#34; No related posts.
No related posts.]]></description>
			<content:encoded><![CDATA[<p>在调试php symfony，加载fixture数据时，遇到了错误：</p>
<blockquote><p>SQLSTATE[HY000]: General error: 1366 Incorrect integer value: 'log' for column 'tasklog_id' at row 1</p></blockquote>
<p>这是因为mysql5.5中默认启用了<em>STRICT_TRANS_TABLES</em>参数。</p>
<p>STRICT_TRANS_TABLES的工作方式：<br />
　　· 对于事务性存储引擎，在语句中任何地方出现的不良数据值均会导致放弃语句并执行回滚。<br />
        · 对于非事务性存储引擎，如果错误出现在要插入或更新的第1行，将放弃语句。（在这种情况下，可以认为语句未改变表，就像事务表一样）。首行后出现的错误不会导致放弃语句。取而代之的是，将调整不良数据值，并给出告警，而不是错误。换句话讲，使用STRICT_TRANS_TABLES后，错误值会导致MySQL执行回滚操作，如果可以，所有更新到此为止。</p>
<p>　　要想执行更严格的检查，请启用STRICT_ALL_TABLES。除了非事务性存储引擎，它与STRICT_TRANS_TABLES等同，即使当不良数据出现在首行后的其他行，所产生的错误也会导致放弃语句。这意味着，如果错误出现在非事务性表多行插入或更新过程的中途，仅更新部分结果。前面的行将完成插入或更新，但错误出现点后面的行则不然。</p>
<p>因此，解决方法就是在my.ini里把STRICT_TRANS_TABLES关掉</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p339code2'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p3392"><td class="code" id="p339code2"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#Set the SQL mode to strict</span>
<span style="color: #339933;">#sql-mode=&quot;STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION&quot;</span>
sql<span style="color: #339933;">-</span>mode<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION&quot;</span></pre></td></tr></table></div>

<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.dbalife.com/archives/339.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql导入慢的解决方法</title>
		<link>http://www.dbalife.com/archives/213.html</link>
		<comments>http://www.dbalife.com/archives/213.html#comments</comments>
		<pubDate>Thu, 05 Feb 2009 17:19:40 +0000</pubDate>
		<dc:creator>skywalker</dc:creator>
				<category><![CDATA[DB性能优化]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[数据库管理]]></category>
		<category><![CDATA[imp]]></category>
		<category><![CDATA[max_allowed_packet]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysqldump]]></category>
		<category><![CDATA[导入]]></category>
		<category><![CDATA[慢]]></category>

		<guid isPermaLink="false">http://www.dbalife.com/?p=213</guid>
		<description><![CDATA[MySQL导出的SQL语句在导入时有可能会非常非常慢，经历过导入仅45万条记录，竟用了近3个小时。在导出时合理使用几个参数，可以大大加快导入的速度。 -e 使用包括几个VALUES列表的多行INSERT语法; --max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小; --net_buffer_length=XXX  TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行。 注意：max_allowed_packet和net_buffer_length不能比目标数据库的设定数值大，否则可能出错。 首先确定目标库的参数值 mysql&#62;show variables like 'max_allowed_packet'; mysql&#62;show variables like 'net_buffer_length'; 根据参数值书写mysqldump命令，如： E:\eis&#62;mysqldump -uroot -p eis_db goodclassification -e --max_allowed_packet=1048576 --net_buffer_length=16384 &#62;good3.sql 之前2小时才能导入的sql现在几十秒就可以完成了。 No related posts.
No related posts.]]></description>
			<content:encoded><![CDATA[<p>MySQL导出的SQL语句在导入时有可能会非常非常慢，经历过导入仅45万条记录，竟用了近3个小时。在导出时合理使用几个参数，可以大大加快导入的速度。</p>
<blockquote><p>-e 使用包括几个VALUES列表的多行INSERT语法;<br />
--max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小;<br />
--net_buffer_length=XXX  TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行。</p></blockquote>
<p><strong>注意：</strong>max_allowed_packet和net_buffer_length不能比目标数据库的设定数值大，否则可能出错。</p>
<p>首先确定目标库的参数值</p>
<blockquote><p>mysql&gt;show variables like 'max_allowed_packet';<br />
mysql&gt;show variables like 'net_buffer_length';</p></blockquote>
<p>根据参数值书写mysqldump命令，如：<br />
E:\eis&gt;mysqldump -uroot -p eis_db goodclassification -e --max_allowed_packet=1048576 --net_buffer_length=16384 &gt;good3.sql</p>
<p>之前2小时才能导入的sql现在几十秒就可以完成了。</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.dbalife.com/archives/213.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

