<?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>荷包蛋博客 &#187; mysql</title>
	<atom:link href="http://www.hebaodans.com/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hebaodans.com</link>
	<description>好的心态是成功的开始</description>
	<lastBuildDate>Tue, 20 Jul 2010 17:32:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>MySQL vs NoSQL 效率与成本之争</title>
		<link>http://www.hebaodans.com/2010/07/mysql-vs-nosql-%e6%95%88%e7%8e%87%e4%b8%8e%e6%88%90%e6%9c%ac%e4%b9%8b%e4%ba%89/</link>
		<comments>http://www.hebaodans.com/2010/07/mysql-vs-nosql-%e6%95%88%e7%8e%87%e4%b8%8e%e6%88%90%e6%9c%ac%e4%b9%8b%e4%ba%89/#comments</comments>
		<pubDate>Sat, 17 Jul 2010 05:34:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysql memcached]]></category>
		<category><![CDATA[mysql sharding]]></category>
		<category><![CDATA[mysql架构]]></category>
		<category><![CDATA[nosql]]></category>

		<guid isPermaLink="false">http://www.hebaodans.com/?p=1335</guid>
		<description><![CDATA[最近Twitter、DIGG等计划换用基于key-value的NoSQL数据库(e.g:Cassandra)，之所以有如此动向是因为基于 MySQL + sharding + cache的构架随着数据量爆炸式增长，重构的人力成本太高，换用扩展性更好的NoSQL数据库，以达到控制人力成本的目的，从而减少总体成本。 　　随着数据量和访问量的增长，网站构架大致有这么几个发展阶段(以PHP+MySQL+Memcached为例)： 1: PHP + MySQL 2: PHP + MySQL (Master + Slaves) 3: PHP + MySQL (Master + Slaves) + Memcached (Middleware) 4: PHP + MySQL (Sharding + Master + Slaves) + Memcached (Middleware) 5: PHP + MySQL (Sharding + Master + Slaves) + Memcached (Middleware) + NoSQL 　　从上面的发展历程可以看出，随着复杂度的增加，开发难度和复杂性也随之提升，数据量增加之后每次重构需要的人力成本急剧增加，因此为了控制成 [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>最近Twitter、DIGG等计划换用基于key-value的NoSQL数据库(e.g:Cassandra)，之所以有如此动向是因为基于 MySQL + sharding + cache的构架随着数据量爆炸式增长，重构的人力成本太高，换用扩展性更好的NoSQL数据库，以达到控制人力成本的目的，从而减少总体成本。</p>
<p>　　随着数据量和访问量的增长，网站构架大致有这么几个发展阶段(以PHP+MySQL+Memcached为例)：</p>
<p>1: PHP + MySQL<br />
2: PHP + MySQL (Master + Slaves)<br />
3: PHP + MySQL (Master + Slaves) + Memcached (Middleware)<br />
4: PHP + MySQL (Sharding + Master + Slaves) + Memcached (Middleware)<br />
5: PHP + MySQL (Sharding + Master + Slaves) + Memcached (Middleware) + NoSQL</p>
<p>　　从上面的发展历程可以看出，随着复杂度的增加，开发难度和复杂性也随之提升，数据量增加之后每次重构需要的人力成本急剧增加，因此为了控制成 本，增长重构的周期，将一些数据量庞大，增长快速的业务迁移至NoSQL上存储。<br />
因此大家不必要言必NoSQL，NoSQL也不会取代MySQL，不同的业务有它最适合的低成本存储方式，最终选择什么数据库是由系统成本决定的。</p>
</div>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hebaodans.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.hebaodans.com/2010/07/mysql-vs-nosql-%e6%95%88%e7%8e%87%e4%b8%8e%e6%88%90%e6%9c%ac%e4%b9%8b%e4%ba%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amoeba 跟 mysql proxy的区别</title>
		<link>http://www.hebaodans.com/2009/12/a-m-o-e-b-a-gen-m-y-s-q-l-p-r-o-x-y-de-qu-bie/</link>
		<comments>http://www.hebaodans.com/2009/12/a-m-o-e-b-a-gen-m-y-s-q-l-p-r-o-x-y-de-qu-bie/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 14:37:29 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[amoeba]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysql proxy]]></category>

		<guid isPermaLink="false">http://www.hebaodans.com/?p=691</guid>
		<description><![CDATA[Amoeba 跟 mysql proxy有区别。 主要是针对数据切分方面。 在 mysql proxy 上面如果想要读写分离并且 读集群、写集群 机器比较多情况下，用mysql proxy 需要相当大的工作量，目前mysql proxy没有现成的 lua脚本。mysql proxy根本没有配置文件，lua脚本就是它的全部，当然可以是相当方便的。那么同样这种东西需要编写大量的lua脚本才能完成一个复杂的配置。amoeba目标是走产品化这条路。只需要进行相关的配置就可以满足需求。 一、Mysql Master/Slave 结构之下的读写分离： Master： server1 （可读写） slaves：server2、server3、server4（3个平等的数据库。只读/负载均衡） amoeba提供读写分离pool相关配置。并且提供负载均衡配置。 可配置server2、server3、server4形成一个虚拟的 virtualSlave,该配置提供负载均衡、failOver、故障恢复功能 Xml代码    &#60;dbServer name=&#8220;virtualSlave&#8221; virtual=&#8220;true&#8221;&#62;       &#60;poolConfig&#62;           &#60;className&#62;com.meidusa.amoeba.server.MultipleServerPool&#60;/className&#62;           &#60;!&#8211; 负载均衡参数 1=ROUNDROBIN , 2=WEIGHTBASED &#8211;&#62;           &#60;property name=&#8220;loadbalance&#8221;&#62;1&#60;/property&#62;                               &#60;!&#8211; 参与该pool负载均衡的poolName列表以逗号分割 &#8211;&#62;           &#60;property name=&#8220;poolNames&#8221;&#62;server2,server3,server4&#60;/property&#62;       &#60;/poolConfig&#62;   &#60;/dbServer&#62;   &#60;dbServer name="virtualSlave" virtual="true"&#62; &#60;poolConfig&#62; &#60;className&#62;com.meidusa.amoeba.server.MultipleServerPool&#60;/className&#62; &#60;!-- 负载均衡参数 1=ROUNDROBIN , 2=WEIGHTBASED --&#62; &#60;property name="loadbalance"&#62;1&#60;/property&#62; &#60;!-- 参与该pool负载均衡的poolName列表以逗号分割 --&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Amoeba 跟 <span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/mysql/" title="View all posts in mysql" target="_blank">mysql</a></span> proxy有区别。<br />
主要是针对数据切分方面。<br />
在 <span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/mysql/" title="View all posts in mysql" target="_blank">mysql</a></span> proxy 上面如果想要读写分离并且 读集群、写集群 机器比较多情况下，用<span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/mysql/" title="View all posts in mysql" target="_blank">mysql</a></span> proxy 需要相当大的工作量，目前<span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/mysql-proxy/" title="View all posts in mysql proxy" target="_blank">mysql proxy</a></span>没有现成的 lua脚本。<span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/mysql-proxy/" title="View all posts in mysql proxy" target="_blank">mysql proxy</a></span>根本没有配置文件，lua脚本就是它的全部，当然可以是相当方便的。那么同样这种东西需要编写大量的lua脚本才能完成一个复杂的配置。<span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/amoeba/" title="View all posts in amoeba" target="_blank">amoeba</a></span>目标是走产品化这条路。只需要进行相关的配置就可以满足需求。</p>
<p><strong>一、Mysql Master/Slave 结构之下的读写分离</strong>：<br />
Master： server1 （可读写）<br />
slaves：server2、server3、server4（3个平等的数据库。只读/负载均衡）</p>
<p><span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/amoeba/" title="View all posts in amoeba" target="_blank">amoeba</a></span>提供读写分离pool相关配置。并且提供负载均衡配置。<br />
可配置server2、server3、server4形成一个虚拟的 virtualSlave,该配置提供负载均衡、failOver、故障恢复功能</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Xml代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://www.javaeye.com/topic/188598?page=1#"><img src="http://www.javaeye.com/images/icon_copy.gif" alt="复制代码" /></a></div>
</div>
<ol class="dp-xml">
<li><span><span>  </span></span></li>
<li><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">dbServer</span></span></strong><span> </span><span class="attribute"><span style="color: #ff0000;">name</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">&#8220;virtualSlave&#8221;</span></span><span> </span><span class="attribute"><span style="color: #ff0000;">virtual</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">&#8220;true&#8221;</span></span><span class="tag"><strong><span style="color: #006699;">&gt;</span></strong></span><span>  </span></li>
<li><span>    </span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">poolConfig</span><span class="tag">&gt;</span></span></strong><span>  </span></li>
<li><span>        </span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">className</span><span class="tag">&gt;</span></span></strong><span>com.meidusa.<span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/amoeba/" title="View all posts in amoeba" target="_blank">amoeba</a></span>.server.MultipleServerPool</span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">className</span><span class="tag">&gt;</span></span></strong><span>  </span></li>
<li><span>        </span><span class="comments"><span style="color: #008200;">&lt;!&#8211; 负载均衡参数 1=ROUNDROBIN , 2=WEIGHTBASED &#8211;&gt;</span></span><span>  </span></li>
<li><span>        </span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">property</span></span></strong><span> </span><span class="attribute"><span style="color: #ff0000;">name</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">&#8220;loadbalance&#8221;</span></span><span class="tag"><strong><span style="color: #006699;">&gt;</span></strong></span><span>1</span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span></span></strong><span>  </span></li>
<li><span>                   </span></li>
<li><span>        </span><span class="comments"><span style="color: #008200;">&lt;!&#8211; 参与该pool负载均衡的poolName列表以逗号分割 &#8211;&gt;</span></span><span>  </span></li>
<li><span>        </span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">property</span></span></strong><span> </span><span class="attribute"><span style="color: #ff0000;">name</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">&#8220;poolNames&#8221;</span></span><span class="tag"><strong><span style="color: #006699;">&gt;</span></strong></span><span>server2,server3,server4</span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span></span></strong><span>  </span></li>
<li><span>    </span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">poolConfig</span><span class="tag">&gt;</span></span></strong><span>  </span></li>
<li><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">dbServer</span><span class="tag">&gt;</span></span></strong><span>  </span></li>
</ol>
</div>
<pre class="xml" style="display: none;">&lt;dbServer name="virtualSlave" virtual="true"&gt;
	&lt;poolConfig&gt;
		&lt;className&gt;com.meidusa.amoeba.server.MultipleServerPool&lt;/className&gt;
		&lt;!-- 负载均衡参数 1=ROUNDROBIN , 2=WEIGHTBASED --&gt;
		&lt;property name="loadbalance"&gt;1&lt;/property&gt;

		&lt;!-- 参与该pool负载均衡的poolName列表以逗号分割 --&gt;
		&lt;property name="poolNames"&gt;server2,server3,server4&lt;/property&gt;
	&lt;/poolConfig&gt;
&lt;/dbServer&gt;</pre>
<p>如果不启用数据切分，那么只需要配置QueryRouter属性<br />
wirtePool=server1<br />
readPool=virtualSlave</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Xml代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://www.javaeye.com/topic/188598?page=1#"><img src="http://www.javaeye.com/images/icon_copy.gif" alt="复制代码" /></a></div>
</div>
<ol class="dp-xml">
<li><span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">queryRouter</span><span class="tag">&gt;</span></span></strong><span>  </span></span></li>
<li><span>    </span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">className</span><span class="tag">&gt;</span></span></strong><span>com.meidusa.amoeba.mysql.parser.MysqlQueryRouter</span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">className</span><span class="tag">&gt;</span></span></strong><span>  </span></li>
<li><span>    </span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">property</span></span></strong><span> </span><span class="attribute"><span style="color: #ff0000;">name</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">&#8220;LRUMapSize&#8221;</span></span><span class="tag"><strong><span style="color: #006699;">&gt;</span></strong></span><span>1500</span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span></span></strong><span>  </span></li>
<li><span>    </span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">property</span></span></strong><span> </span><span class="attribute"><span style="color: #ff0000;">name</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">&#8220;defaultPool&#8221;</span></span><span class="tag"><strong><span style="color: #006699;">&gt;</span></strong></span><span>server1</span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span></span></strong><span>  </span></li>
<li><span>  </span></li>
<li><span>    </span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">property</span></span></strong><span> </span><span class="attribute"><span style="color: #ff0000;">name</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">&#8220;writePool&#8221;</span></span><span class="tag"><strong><span style="color: #006699;">&gt;</span></strong></span><span>server1</span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span></span></strong><span>  </span></li>
<li><span>    </span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">property</span></span></strong><span> </span><span class="attribute"><span style="color: #ff0000;">name</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">&#8220;readPool&#8221;</span></span><span class="tag"><strong><span style="color: #006699;">&gt;</span></strong></span><span>virtualSlave</span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span></span></strong><span>  </span></li>
<li><span>  </span></li>
<li><span>    </span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">property</span></span></strong><span> </span><span class="attribute"><span style="color: #ff0000;">name</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">&#8220;needParse&#8221;</span></span><span class="tag"><strong><span style="color: #006699;">&gt;</span></strong></span><span>true</span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span></span></strong><span>  </span></li>
<li><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">queryRouter</span><span class="tag">&gt;</span></span></strong><span>  </span></li>
</ol>
</div>
<pre class="xml" style="display: none;">	&lt;queryRouter&gt;
		&lt;className&gt;com.meidusa.amoeba.mysql.parser.MysqlQueryRouter&lt;/className&gt;
		&lt;property name="LRUMapSize"&gt;1500&lt;/property&gt;
		&lt;property name="defaultPool"&gt;server1&lt;/property&gt;

		&lt;property name="writePool"&gt;server1&lt;/property&gt;
		&lt;property name="readPool"&gt;virtualSlave&lt;/property&gt;

		&lt;property name="needParse"&gt;true&lt;/property&gt;
	&lt;/queryRouter&gt;</pre>
<p>那么遇到update/insert/delete将 query语句发送到 wirtePool，将 select发送到 readPool机器中执行。</p>
<p><strong>二、数据切分</strong>：<br />
这方面amoeba显然更加容易了。</p>
<p>举个数据切分例子：</p>
<p>select * from user_event where user_id=&#8217;test&#8217; and  gmt_create between Sysdate() -1 and Sysdate()</p>
<p>如果根据gmt_create 时间进行数据切分，比如 6个月进行切分一次</p>
<p>amoeba提供利用类似sql表达式进行数据切分：</p>
<p><strong>规则1</strong>：GMT_CREATE &gt; to_date(&#8217;2008-01-01&#8242;,&#8217;yyyy-mm-dd&#8217;) and GMT_CREATE &lt; to_date(&#8217;2008-05-31&#8242;,&#8217;yyyy-mm-dd&#8217;)</p>
<p>规则1对应服务器1</p>
<p><strong>规则2</strong>：GMT_CREATE &gt; to_date(&#8217;2008-06-01&#8242;,&#8217;yyyy-mm-dd&#8217;) and GMT_CREATE &lt; to_date(&#8217;2008-12-31&#8242;,&#8217;yyyy-mm-dd&#8217;)</p>
<p>规则2对应服务器2</p>
<p>上面的sql的条件 gmt_create 与规则里面的的gmt_create 进行 交集判断，如果存在交集则表示符合规则。</p>
<p>则会将sql转移到 规则1 的相应的服务器上面执行。</p>
<p>利用amoeba写出这种类似规则很容易，但是要想做到数据切分以后可线性扩容，那么这样的规则需要自己根据业务实际情况进行设置。</p>
<p>amoeba可同时将sql 并发分发到多台服务器、然后将结果合并再反馈给客户端，而且amoeba内部现成采用无阻塞模式，工作线程是不会等待的,并发请求多台 database server情况下，客户端等待的时间基本上面是性能最差的那台 database server＋amoeba内部解析协议的时间</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hebaodans.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.hebaodans.com/2009/12/a-m-o-e-b-a-gen-m-y-s-q-l-p-r-o-x-y-de-qu-bie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php连接mysql查询</title>
		<link>http://www.hebaodans.com/2008/09/php-mysql-query/</link>
		<comments>http://www.hebaodans.com/2008/09/php-mysql-query/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 01:26:44 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysql_connect]]></category>
		<category><![CDATA[mysql_fetch_arrary]]></category>
		<category><![CDATA[mysql_query]]></category>
		<category><![CDATA[mysql_select_db]]></category>
		<category><![CDATA[query]]></category>

		<guid isPermaLink="false">http://www.hebaodans.com/?p=94</guid>
		<description><![CDATA[&#60;?php $con = mysql_connect(&#8220;localhost&#8221;,&#8221;peter&#8221;,&#8221;abc123&#8243;); if (!$con)   {   die(&#8216;Could not connect: &#8216; . mysql_error());   } mysql_select_db(&#8220;my_db&#8221;, $con); $result = mysql_query(&#8220;SELECT * FROM person&#8221;); while($row = mysql_fetch_array($result))   {   echo $row['FirstName'] . &#8221; &#8221; . $row['LastName'];   echo &#8220;&#60;br /&#62;&#8221;;   } 或者   &#60;?php mysql_connect($host,$user,$password); $result = mysql_db_query(&#8220;database&#8221;,&#8220;select * from table&#8221;); while($row = mysql_fetch_array($result)) {   echo $row["user_id"];   echo $row["fullname"]; } mysql_free_result($result); ?&#62;]]></description>
			<content:encoded><![CDATA[<p>&lt;?php<br />
$con = <span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/mysql_connect/" title="View all posts in mysql_connect" target="_blank">mysql_connect</a></span>(&#8220;localhost&#8221;,&#8221;peter&#8221;,&#8221;abc123&#8243;);<br />
if (!$con)<br />
  {<br />
  die(&#8216;Could not connect: &#8216; . mysql_error());<br />
  }</p>
<p><span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/mysql_select_db/" title="View all posts in mysql_select_db" target="_blank">mysql_select_db</a></span>(&#8220;my_db&#8221;, $con);</p>
<p>$result = <span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/mysql_query/" title="View all posts in mysql_query" target="_blank">mysql_query</a></span>(&#8220;SELECT * FROM person&#8221;);</p>
<p>while($row = mysql_fetch_array($result))<br />
  {<br />
  echo $row['FirstName'] . &#8221; &#8221; . $row['LastName'];<br />
  echo &#8220;&lt;br /&gt;&#8221;;<br />
  }</p>
<p>或者</p>
<p> </p>
<p><span style="color: #0000bb;">&lt;?php<br />
<span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/mysql_connect/" title="View all posts in mysql_connect" target="_blank">mysql_connect</a></span></span><span style="color: #007970;">(</span><span style="color: #0000bb;">$host</span><span style="color: #007970;">,</span><span style="color: #0000bb;">$user</span><span style="color: #007970;">,</span><span style="color: #0000bb;">$password</span><span style="color: #007970;">);<br />
</span><span style="color: #0000bb;">$result </span><span style="color: #007970;">= </span><span style="color: #0000bb;">mysql_db_query</span><span style="color: #007970;">(</span><span style="color: #dd0000;">&#8220;database&#8221;</span><span style="color: #007970;">,</span><span style="color: #dd0000;">&#8220;select * from table&#8221;</span><span style="color: #007970;">);<br />
while(</span><span style="color: #0000bb;">$row </span><span style="color: #007970;">= </span><span style="color: #0000bb;">mysql_fetch_array</span><span style="color: #007970;">(</span><span style="color: #0000bb;">$result</span><span style="color: #007970;">)) {<br />
  echo </span><span style="color: #0000bb;">$row</span><span style="color: #007970;">[</span><span style="color: #dd0000;">"user_id"</span><span style="color: #007970;">];<br />
  echo </span><span style="color: #0000bb;">$row</span><span style="color: #007970;">[</span><span style="color: #dd0000;">"fullname"</span><span style="color: #007970;">];<br />
}<br />
</span><span style="color: #0000bb;">mysql_free_result</span><span style="color: #007970;">(</span><span style="color: #0000bb;">$result</span><span style="color: #007970;">);<br />
</span><span style="color: #0000bb;">?&gt;</span></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hebaodans.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.hebaodans.com/2008/09/php-mysql-query/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql查询数据库中所有表名</title>
		<link>http://www.hebaodans.com/2008/09/mysql-query-all-table-name/</link>
		<comments>http://www.hebaodans.com/2008/09/mysql-query-all-table-name/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 08:59:38 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[查询]]></category>
		<category><![CDATA[表名]]></category>

		<guid isPermaLink="false">http://www.hebaodans.com/?p=92</guid>
		<description><![CDATA[查询数据库中所有表名 select * from information_schema.tables  查询指定数据库中指定表的所有字段名 select column_name from information_schema.columns  where table_schema=&#8217;YOURDATABASENAME&#8217; and table_name=&#8217;YOURTABLENAME&#8217;]]></description>
			<content:encoded><![CDATA[<p><span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/%e6%9f%a5%e8%af%a2/" title="View all posts in 查询" target="_blank">查询</a></span><span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/%e6%95%b0%e6%8d%ae%e5%ba%93/" title="View all posts in 数据库" target="_blank">数据库</a></span>中所有<span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/%e8%a1%a8%e5%90%8d/" title="View all posts in 表名" target="_blank">表名</a></span></p>
<p>select * from information_schema.tables </p>
<p><span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/%e6%9f%a5%e8%af%a2/" title="View all posts in 查询" target="_blank">查询</a></span>指定<span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/%e6%95%b0%e6%8d%ae%e5%ba%93/" title="View all posts in 数据库" target="_blank">数据库</a></span>中指定表的所有字段名</p>
<p>select column_name from information_schema.columns  where table_schema=&#8217;YOURDATABASENAME&#8217; and table_name=&#8217;YOURTABLENAME&#8217;</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hebaodans.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.hebaodans.com/2008/09/mysql-query-all-table-name/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL 当记录不存在时插入（insert if not exists）</title>
		<link>http://www.hebaodans.com/2008/08/mysql-insert-if-not-exists/</link>
		<comments>http://www.hebaodans.com/2008/08/mysql-insert-if-not-exists/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 10:24:58 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[insert]]></category>
		<category><![CDATA[insert if not exists]]></category>

		<guid isPermaLink="false">http://www.hebaodans.com/?p=88</guid>
		<description><![CDATA[  示例一：插入多条记录 假设有一个主键为 client_id 的 clients 表，可以使用下面的语句： INSERT INTO clients (client_id, client_name, client_type) SELECT supplier_id, supplier_name, &#8216;advertising&#8216; FROM suppliers WHERE not exists (select * from clients where clients.client_id = suppliers.supplier_id); 示例一：插入单条记录 INSERT INTO clients (client_id, client_name, client_type) SELECT 10345, &#8216;IBM&#8216;, &#8216;advertising&#8216; FROM dual WHERE not exists (select * from clients where clients.client_id = 10345); 来源: [...]]]></description>
			<content:encoded><![CDATA[<p><strong></strong> </p>
<p><strong><span style="color: #ff6600;">示例一：插入多条记录</span></strong></p>
<p>假设有一个主键为 client_id 的 clients 表，可以使用下面的语句：</p>
<div class="hl-surround">
<div class="hl-main"><span style="color: #008000;">INSERT</span><span style="color: #808080;"> </span><span style="color: #008000;">INTO</span><span style="color: #808080;"> </span><span style="color: #0000ff;">clients</span><span style="color: #808080;"><br />
</span><span style="color: #808000;">(</span><span style="color: #0000ff;">client_id</span><span style="color: #808080;">, </span><span style="color: #0000ff;">client_name</span><span style="color: #808080;">, </span><span style="color: #0000ff;">client_type</span><span style="color: #808000;">)</span><span style="color: #808080;"><br />
</span><span style="color: #008000;">SELECT</span><span style="color: #808080;"> </span><span style="color: #0000ff;">supplier_id</span><span style="color: #808080;">, </span><span style="color: #0000ff;">supplier_name</span><span style="color: #808080;">, </span><span style="color: #8b0000;">&#8216;</span><span style="color: #ff0000;">advertising</span><span style="color: #8b0000;">&#8216;</span><span style="color: #808080;"><br />
</span><span style="color: #008000;">FROM</span><span style="color: #808080;"> </span><span style="color: #0000ff;">suppliers</span><span style="color: #808080;"><br />
</span><span style="color: #008000;">WHERE</span><span style="color: #808080;"> </span><span style="color: #008000;">not</span><span style="color: #808080;"> </span><span style="color: #00008b;">exists</span><span style="color: #808080;"> </span><span style="color: #808000;">(</span><span style="color: #008000;">select</span><span style="color: #808080;"> * </span><span style="color: #008000;">from</span><span style="color: #808080;"> </span><span style="color: #0000ff;">clients</span><span style="color: #808080;"><br />
</span><span style="color: #008000;">where</span><span style="color: #808080;"> </span><span style="color: #0000ff;">clients</span><span style="color: #808080;">.</span><span style="color: #0000ff;">client_id</span><span style="color: #808080;"> = </span><span style="color: #0000ff;">suppliers</span><span style="color: #808080;">.</span><span style="color: #0000ff;">supplier_id</span><span style="color: #808000;">)</span><span style="color: #808080;">;</span></div>
</div>
<p><strong><span style="color: #ff6600;">示例一：插入单条记录</span></strong></p>
<div class="hl-surround">
<div class="hl-main"><span style="color: #008000;">INSERT</span><span style="color: #808080;"> </span><span style="color: #008000;">INTO</span><span style="color: #808080;"> </span><span style="color: #0000ff;">clients</span><span style="color: #808080;"><br />
</span><span style="color: #808000;">(</span><span style="color: #0000ff;">client_id</span><span style="color: #808080;">, </span><span style="color: #0000ff;">client_name</span><span style="color: #808080;">, </span><span style="color: #0000ff;">client_type</span><span style="color: #808000;">)</span><span style="color: #808080;"><br />
</span><span style="color: #008000;">SELECT</span><span style="color: #808080;"> </span><span style="color: #800000;">10345</span><span style="color: #808080;">, </span><span style="color: #8b0000;">&#8216;</span><span style="color: #ff0000;">IBM</span><span style="color: #8b0000;">&#8216;</span><span style="color: #808080;">, </span><span style="color: #8b0000;">&#8216;</span><span style="color: #ff0000;">advertising</span><span style="color: #8b0000;">&#8216;</span><span style="color: #808080;"><br />
</span><span style="color: #008000;">FROM</span><span style="color: #808080;"> </span><span style="color: #0000ff;">dual</span><span style="color: #808080;"><br />
</span><span style="color: #008000;">WHERE</span><span style="color: #808080;"> </span><span style="color: #008000;">not</span><span style="color: #808080;"> </span><span style="color: #00008b;">exists</span><span style="color: #808080;"> </span><span style="color: #808000;">(</span><span style="color: #008000;">select</span><span style="color: #808080;"> * </span><span style="color: #008000;">from</span><span style="color: #808080;"> </span><span style="color: #0000ff;">clients</span><span style="color: #808080;"><br />
</span><span style="color: #008000;">where</span><span style="color: #808080;"> </span><span style="color: #0000ff;">clients</span><span style="color: #808080;">.</span><span style="color: #0000ff;">client_id</span><span style="color: #808080;"> = </span><span style="color: #800000;">10345</span><span style="color: #808000;">)</span><span style="color: #808080;">;</span></div>
<div class="hl-main"></div>
<div class="hl-main">来源: techonthenet.com</div>
</div>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hebaodans.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.hebaodans.com/2008/08/mysql-insert-if-not-exists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于 mysql error number 1051和 1418 错误的处理</title>
		<link>http://www.hebaodans.com/2008/08/mysql-error-number-1051-1418/</link>
		<comments>http://www.hebaodans.com/2008/08/mysql-error-number-1051-1418/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 09:55:58 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[1051]]></category>
		<category><![CDATA[1418]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[number]]></category>

		<guid isPermaLink="false">http://www.hebaodans.com/?p=79</guid>
		<description><![CDATA[mysql error number 1051 在网上(包括外国网) 说了一大堆,但就是没有人知道其中的缘由,这是store engine 不同造成的 例如,最开始的engine=myisam,在此基础上建了A表,那么你现在要转成innodb的方式(开启了my.cnf下的innodb的参数)现在如果再来 select A 表那么是会报不存在的,如果drop 的话会报 mysql error number 1051.这个问题该怎么处理呢? 哈哈,先关掉my.cnf的innodb参数,然后重启mysql,这样A就可以select 了,把A表的backup 下来,drop 掉A表,然后再开启innodb参数,重起mysql,restore 刚才备份的脚本, 这样就可以搞定了. 如果在create function的时候有 1418的错语的时候:那么 set global log_bin_trust_routine_creators=1; 然后怎么create function 都不会有问题(当然,你的function必段正确哦),妈的,这是mysql的一个bug,搞不懂为什么,反正这样做就OK了. 在oracle中根本就没有这种错语,如果出现了这种错语,是由于用户权限不够,OpenSource的东西就是这样的.还是oracle的好. 2006-04-26于北京朝阳 18:15 转载来源：http://blog.chinaunix.net/u/15117/showart_104301.html]]></description>
			<content:encoded><![CDATA[<p><span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/mysql/" title="View all posts in mysql" target="_blank">mysql</a></span> <span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/error/" title="View all posts in error" target="_blank">error</a></span> <span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/number/" title="View all posts in number" target="_blank">number</a></span> <span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/1051/" title="View all posts in 1051" target="_blank">1051</a></span> 在网上(包括外国网) 说了一大堆,但就是没有人知道其中的缘由,这是store engine 不同造成的<br />
例如,最开始的engine=myisam,在此基础上建了A表,那么你现在要转成innodb的方式(开启了my.cnf下的innodb的参数)现在如果再来 select A 表那么是会报不存在的,如果drop 的话会报  <span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/mysql/" title="View all posts in mysql" target="_blank">mysql</a></span> <span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/error/" title="View all posts in error" target="_blank">error</a></span> <span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/number/" title="View all posts in number" target="_blank">number</a></span> <span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/1051/" title="View all posts in 1051" target="_blank">1051</a></span>.这个问题该怎么处理呢? 哈哈,先关掉my.cnf的innodb参数,然后重启<span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/mysql/" title="View all posts in mysql" target="_blank">mysql</a></span>,这样A就可以select 了,把A表的backup 下来,drop 掉A表,然后再开启innodb参数,重起mysql,restore 刚才备份的脚本,<br />
这样就可以搞定了.</p>
<p>如果在create function的时候有 <span class='wp_keywordlink_affiliate'><a href="http://www.hebaodans.com/tag/1418/" title="View all posts in 1418" target="_blank">1418</a></span>的错语的时候:那么<br />
set global log_bin_trust_routine_creators=1;<br />
然后怎么create function 都不会有问题(当然,你的function必段正确哦),妈的,这是mysql的一个bug,搞不懂为什么,反正这样做就OK了.</p>
<p>在oracle中根本就没有这种错语,如果出现了这种错语,是由于用户权限不够,OpenSource的东西就是这样的.还是oracle的好.</p>
<p>2006-04-26于北京朝阳 18:15</p>
<p>转载来源：http://blog.chinaunix.net/u/15117/showart_104301.html</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hebaodans.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.hebaodans.com/2008/08/mysql-error-number-1051-1418/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
