<?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>esayr&#039;s blog &#187; mysql 数据库</title>
	<atom:link href="http://www.esayr.com/category/mysql-%e6%95%b0%e6%8d%ae%e5%ba%93/feed" rel="self" type="application/rss+xml" />
	<link>http://www.esayr.com</link>
	<description>有友共尊田舍酒,无事面对古人书</description>
	<lastBuildDate>Fri, 31 Dec 2010 06:37:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>如何为 MySQL 选择更合适的服务器硬件</title>
		<link>http://www.esayr.com/2008/05/02/archives_54.html</link>
		<comments>http://www.esayr.com/2008/05/02/archives_54.html#comments</comments>
		<pubDate>Fri, 02 May 2008 06:19:07 +0000</pubDate>
		<dc:creator>esayr</dc:creator>
				<category><![CDATA[mysql 数据库]]></category>

		<guid isPermaLink="false">http://www.esayr.com/2008/05/02/archives_54.html</guid>
		<description><![CDATA[DBA notes 的  Fenng 老大发了一篇为 MySQL 选择更合适的硬件的文章,我转摘过来,并根据自己的使用习惯做了点评.以下部分,红色字体为我的话.
-------------------------------------------- 分割线 ----------------------------------------
MySQL 爱好者关注的 2008 MySQL Conference &#38; Expo 落幕后，很多文档都能看到了。今天读了一下这篇 Scaling Out MySQL: Hardware Today and Tomorrow。感兴趣的朋友也不防下载下来研究一下。
用什么样的硬件做 MySQL ，真不是三言两语能说清楚的。不过该讲座中还是能总结出来几点关键点的。

CPU 选择
首先如有可能就选择 64 位CPU，这样才可以安装 64 位操作系统，有了 64 位操作系统才能利用好更大的内存。如果非要抬杠的话，不是 64 位芯片也可以安装 64 位操作系统，也就是 Intel 的 EM64T 的解决方案(这也是文档中没提及的) 。
我个人倒是比较喜欢 AMD 64 位 CPU 的，物美价廉，性能也不错。
注意： MySQL 在多核上的 Bug 问题。
(1.现在配置的服务器,基本上都是64位的CPU.也许出于对稳定和系统兼容性的考虑,很多管理员更喜欢安装32位的操作系统.我前段上线的一台53XX的四核至强CPU服务器,安装的是linux 64位操作系统[ubuntu server 8.0.4] 测试下来,在跑WEB服务这块,似乎没有任何稳定和软件兼容上的问题,大家可放心使用.
2.CPU个数,当然是双路或者四路最好.但如果压力不是非常巨大,我认为一颗CPU也够用了.省下的钱去换好的硬盘和加大内存,效果会更明显)

内存，来者不拒
第二点是尽可能配置比较大的内存，当然，只配置大内存如果 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dbanotes.net/" set="yes" linkindex="0" accesskey="1">DBA notes</a> 的 <span class="byline"> <a href="http://www.dbanotes.net/" style="color: orange" set="yes" linkindex="19">Fenng</a> 老大发了一篇</span><font size="2"><a href="http://www.dbanotes.net/database/mysql_hardware.html" set="yes" linkindex="8">为 MySQL 选择更合适的硬件</a></font><span class="byline">的文章,</span>我转摘过来,并根据自己的使用习惯做了点评.以下部分,红色字体为我的话.</p>
<p>-------------------------------------------- 分割线 ----------------------------------------</p>
<p>MySQL 爱好者关注的 <a href="http://en.oreilly.com/mysql2008/public/content/home" set="yes" linkindex="12" target="_blank">2008 MySQL Conference &amp; Expo</a> 落幕后，很多文档都能看到了。今天读了一下这篇 <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/2292" set="yes" linkindex="121" target="_blank">Scaling Out MySQL: Hardware Today and Tomorrow</a>。感兴趣的朋友也不防<a href="http://www.scribd.com/doc/2569227/Scaling-out-MySQL-Hardware-today-and-tomorrow" linkindex="13" target="_blank">下载</a>下来研究一下。</p>
<p>用什么样的硬件做 MySQL ，真不是三言两语能说清楚的。不过该讲座中还是能总结出来几点关键点的。</p>
<h4></h4>
<h4 style="color: #0000cd"><font size="4">CPU 选择</font></h4>
<p>首先如有可能就<strong>选择 64 位CPU</strong>，这样才可以安装 64 位操作系统，有了 64 位操作系统才能利用好更大的内存。如果非要抬杠的话，不是 64 位芯片也可以安装 64 位操作系统，也就是 <a href="http://www.dbanotes.net/review/intel_em64t_oracle.html" linkindex="14" target="_blank">Intel 的 EM64T</a> 的解决方案(这也是文档中没提及的) 。</p>
<p>我个人倒是比较喜欢 AMD 64 位 CPU 的，物美价廉，性能也不错。</p>
<p>注意： MySQL 在多核上的 Bug 问题。</p>
<p>(<span style="color: #ff0000">1.现在配置的服务器,基本上都是64位的CPU.</span><span style="color: #ff0000">也许出于对稳定和系统兼容性的考虑,</span><span style="color: #ff0000">很多管理员更喜欢安装32位的操作系统.我前段上线的一台53XX的四核至强CPU</span><span style="color: #ff0000">服务器</span><span style="color: #ff0000">,安装的是linux 64位操作系统[ubuntu server 8.0.4] 测试下来,在跑WEB服务这块,似乎没有任何稳定和软件兼容上的问题,大家可放心使用.</span></p>
<p><span style="color: #ff0000">2.CPU个数,当然是双路或者四路最好.但如果压力不是非常巨大,我认为一颗CPU也够用了.省下的钱去换好的硬盘和加大内存,效果会更明显</span>)</p>
<h4></h4>
<h4 style="color: #0000cd"><font size="4">内存，来者不拒</font></h4>
<p>第二点是尽可能配置比较大的内存，当然，只配置大内存如果 MySQL 参数配置有问题，还是摆设，如何设置各个引擎的 Cache 相关参数，够写一本书的了。</p>
<p>现在市场上内存是越来越便宜了。我个人的感觉内存降价的程度比 CPU 和硬盘都夸张很多。所以，考虑到人力越来越贵，内存越来越便宜，配置服务器的时候就别太吝啬了。</p>
<p>(<span style="color: #ff0000">1. 这点几乎是共识了,个人推荐4G以上内存.参数配置和缓存设置方面我认为,一是别道听途说,自己多测试性能.按自己的实际情况调整参数. 二是认真看官方手册,手册的大多数,基本上算是真理了.</span>)</p>
<h4></h4>
<h4></h4>
<h4 style="color: #0000cd"><font size="4">硬盘--唯快不破</font></h4>
<p>国内用 MySQL ，绝大多数都是直接仍在本机磁盘上的。这个磁盘的选择要慎重一点点。尽量选择 15K 而不要 10K 慢速磁盘，大多数数据库的磁盘问题都在速度上，如果只在磁盘上多花费 30%的钱而能得到总体性能的 30％收益，那么还是值得的，而容量多数情况下不会出现问题，现在的硬盘容量就是一个大。</p>
<p>至于选择什么类型的磁盘，SCSI 与 SAS 都可选，SATA 倒是够便宜，特定的应用再考虑吧。</p>
<p>这三板斧看是简单活，但是实际的应用场景下可未必就能做出更优的选择。最简单的东西也有人不知道不是?</p>
<p>(<span style="color: #ff0000">是的,把CPU节省下来的钱,换上一块好的硬盘吧. 如果有需要,推荐部署单独的数据库服务器</span>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.esayr.com/2008/05/02/archives_54.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[SQL语句]把所有的数据记录修改成Id = 1的记录　</title>
		<link>http://www.esayr.com/2008/01/24/archives_41.html</link>
		<comments>http://www.esayr.com/2008/01/24/archives_41.html#comments</comments>
		<pubDate>Thu, 24 Jan 2008 02:15:26 +0000</pubDate>
		<dc:creator>esayr</dc:creator>
				<category><![CDATA[mysql 数据库]]></category>

		<guid isPermaLink="false">http://www.esayr.com/2008/01/24/archives_41.html</guid>
		<description><![CDATA[群里朋友的问题．表名叫test,结构如下

就是把ID为2,3...的值,使用一个SQL语句,直接改为dsf
用 update test set a=(select b from test where id='1') where 1
提示错误:
SQL execution error # 1093 Response from the database:
You can't specify target table 'test' for upadte in FROM clause
早上问过fluke,这句可以实现:
UPDATE test,
(
SELECT b AS sub_data
FROM test
 WHERE Id = 1
)q1
SET test.b = q1.sub_data WHERE 1
再更新: (by耿勇)
update test as aa,test as bb set bb.b=aa.b where aa.id=1  [...]]]></description>
			<content:encoded><![CDATA[<p>群里朋友的问题．表名叫test,结构如下</p>
<p><a href="http://www.esayr.com/files/2008/01/mysql.jpg" title="mysql.jpg"><img src="http://www.esayr.com/files/2008/01/mysql.jpg" alt="mysql.jpg" /></a></p>
<p>就是把ID为2,3...的值,使用一个SQL语句,直接改为dsf</p>
<p>用 <em>update test set a=(select b from test where id='1') where 1</em></p>
<p>提示错误:<br />
SQL execution error # 1093 Response from the database:<br />
You can't specify target table 'test' for upadte in FROM clause<br />
早上问过fluke,这句可以实现:</p>
<p><em>UPDATE </em><em>test</em><em>,<br />
(<br />
SELECT b AS sub_data<br />
FROM </em><em>test</em><br />
<em> WHERE Id = 1<br />
)q1<br />
SET </em><em>test</em><em>.b = q1.sub_data WHERE 1</em></p>
<p>再更新: (by耿勇)<br />
<em>update test as aa,test as bb set bb.b=aa.b where aa.id=1  </em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esayr.com/2008/01/24/archives_41.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysqldump 导出的sql文件导入时提示Unknown command &#8216;\[&#8216;.</title>
		<link>http://www.esayr.com/2007/05/24/archives_10.html</link>
		<comments>http://www.esayr.com/2007/05/24/archives_10.html#comments</comments>
		<pubDate>Thu, 24 May 2007 09:26:01 +0000</pubDate>
		<dc:creator>esayr</dc:creator>
				<category><![CDATA[mysql 数据库]]></category>
		<category><![CDATA[服务器配置]]></category>

		<guid isPermaLink="false">http://www.esayr.com/2007/05/24/archives_10.html</guid>
		<description><![CDATA[ 两台linux机器的mysql配置一模一样。
#mysqldump forum&#62;forum.sql -u root -p
导出一个2.4G大的forum.sql文件，然后试图导入内网（192.168.0.8）的另一台机器时，出现问题
#mysql forum&#60;forum.sql  -u root -p -h 192.168.0.8
Enter password:
ERROR at line 1410: Unknown command '\['.
首先是怀疑有二进制，添加参数--hex-blob 再导，问题依旧。
再想也不可能是字符集什么呀 。
请教imysql，说是： 2边的max_allowed_packet设置的不一样.
明明是一样的，改大一些试试。16M改成64M，也不行。
最后拉到本机去，终于可以正常导入。
问题虽然解决，但根源是什么还是没弄懂。
哪个老师知道此问题的原因，请赐教。
&#160;
最后，学到一个简单的服务器间复制库的办法。
mysqldump -hhost1 xx &#124; mysql -hhost2
从host1导出库xx，然后写入host2
]]></description>
			<content:encoded><![CDATA[<p class="msg 1st"> 两台linux机器的mysql配置一模一样。<br />
#mysqldump forum&gt;forum.sql -u root -p<br />
导出一个2.4G大的forum.sql文件，然后试图导入内网（192.168.0.8）的另一台机器时，出现问题</p>
<p>#mysql forum&lt;forum.sql  -u root -p -h 192.168.0.8<br />
Enter password:<br />
ERROR at line 1410: Unknown command '\['.</p>
<p>首先是怀疑有二进制，添加参数<span>--hex-blob 再导，问题依旧。<br />
</span>再想也不可能是字符集什么呀 。<br />
<span class="salutation">请教imysql</span>，说是： 2边的max_allowed_packet设置的不一样.<br />
明明是一样的，改大一些试试。16M改成64M，也不行。<br />
最后拉到本机去，终于可以正常导入。<br />
问题虽然解决，但根源是什么还是没弄懂。<br />
哪个老师知道此问题的原因，请赐教。</p>
<p class="msg 1st">&nbsp;</p>
<p class="msg Nth">最后，学到一个简单的服务器间复制库的办法。<br />
mysqldump -hhost1 xx | mysql -hhost2<br />
从host1导出库xx，然后写入host2</p>
]]></content:encoded>
			<wfw:commentRss>http://www.esayr.com/2007/05/24/archives_10.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

