??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品国产半推半就,伊人久久亚洲综合影院,精品久久久无码中文字幕天天http://www.shnenglu.com/true/category/4716.htmlzh-cnWed, 06 Apr 2011 08:50:33 GMTWed, 06 Apr 2011 08:50:33 GMT60mysql的加密函?/title><link>http://www.shnenglu.com/true/archive/2011/04/06/143517.html</link><dc:creator>true</dc:creator><author>true</author><pubDate>Wed, 06 Apr 2011 06:04:00 GMT</pubDate><guid>http://www.shnenglu.com/true/archive/2011/04/06/143517.html</guid><wfw:comment>http://www.shnenglu.com/true/comments/143517.html</wfw:comment><comments>http://www.shnenglu.com/true/archive/2011/04/06/143517.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/true/comments/commentRss/143517.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/true/services/trackbacks/143517.html</trackback:ping><description><![CDATA[<div id="7n7r7l7" class=informaltable> <table border=1> <colgroup> <col> <col></colgroup> <tbody> <tr> <td><span id="x7zdx7b" class=bold><strong>Compression or encryption</strong></span></td> <td><span id="hj9f7td" class=bold><strong>Uncompression or decryption</strong></span></td> </tr> <tr> <td><a href="mk:@MSITStore:C:\Program%20Files\MySQL\MySQL%20Server%205.0\Docs\manual.chm::/ch12s09.html#function_aes_encrypt"><font color=#800080><u>AES_ENCRYT()</u></font></a></td> <td><a href="mk:@MSITStore:C:\Program%20Files\MySQL\MySQL%20Server%205.0\Docs\manual.chm::/ch12s09.html#function_aes_encrypt"><font color=#800080><u>AES_DECRYPT()</u></font></a></td> </tr> <tr> <td><a href="mk:@MSITStore:C:\Program%20Files\MySQL\MySQL%20Server%205.0\Docs\manual.chm::/ch12s09.html#function_compress"><font color=#800080><u>COMPRESS()</u></font></a></td> <td><a href="mk:@MSITStore:C:\Program%20Files\MySQL\MySQL%20Server%205.0\Docs\manual.chm::/ch12s09.html#function_uncompress"><font color=#800080><u>UNCOMPRESS()</u></font></a></td> </tr> <tr> <td><a href="mk:@MSITStore:C:\Program%20Files\MySQL\MySQL%20Server%205.0\Docs\manual.chm::/ch12s09.html#function_encode"><font color=#800080><u>ENCODE()</u></font></a></td> <td><a href="mk:@MSITStore:C:\Program%20Files\MySQL\MySQL%20Server%205.0\Docs\manual.chm::/ch12s09.html#function_decode"><font color=#800080><u>DECODE()</u></font></a></td> </tr> <tr> <td><a href="mk:@MSITStore:C:\Program%20Files\MySQL\MySQL%20Server%205.0\Docs\manual.chm::/ch12s09.html#function_des_encrypt"><font color=#800080><u>DES_ENCRYPT()</u></font></a></td> <td><a href="mk:@MSITStore:C:\Program%20Files\MySQL\MySQL%20Server%205.0\Docs\manual.chm::/ch12s09.html#function_des_decrypt"><font color=#800080><u>DES_DECRYPT()</u></font></a></td> </tr> <tr> <td><a href="mk:@MSITStore:C:\Program%20Files\MySQL\MySQL%20Server%205.0\Docs\manual.chm::/ch12s09.html#function_encrypt"><u><font color=#800080>ENCRYPT()</font></u></a></td> <td>Not available</td> </tr> <tr> <td><a href="mk:@MSITStore:C:\Program%20Files\MySQL\MySQL%20Server%205.0\Docs\manual.chm::/ch12s09.html#function_md5"><u><font color=#800080>MD5()</font></u></a></td> <td>Not available</td> </tr> <tr> <td><a href="mk:@MSITStore:C:\Program%20Files\MySQL\MySQL%20Server%205.0\Docs\manual.chm::/ch12s09.html#function_old_password"><u><font color=#800080>OLD_PASSWORD()</font></u></a></td> <td>Not available</td> </tr> <tr> <td><a href="mk:@MSITStore:C:\Program%20Files\MySQL\MySQL%20Server%205.0\Docs\manual.chm::/ch12s09.html#function_password"><u><font color=#800080>PASSWORD()</font></u></a></td> <td>Not available</td> </tr> <tr> <td><a href="mk:@MSITStore:C:\Program%20Files\MySQL\MySQL%20Server%205.0\Docs\manual.chm::/ch12s09.html#function_sha1"><u><font color=#800080>SHA() or SHA1()</font></u></a></td> <td>Not available</td> </tr> <tr> <td>Not available</td> <td><a href="mk:@MSITStore:C:\Program%20Files\MySQL\MySQL%20Server%205.0\Docs\manual.chm::/ch12s09.html#function_uncompressed_length"><u><font color=#800080>UNCOMPRESSED_LENGTH()</font></u></a></td> </tr> </tbody> </table> </div> 从文档中的描q来看,mysql是支持AES和DES? <img src ="http://www.shnenglu.com/true/aggbug/143517.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/true/" target="_blank">true</a> 2011-04-06 14:04 <a href="http://www.shnenglu.com/true/archive/2011/04/06/143517.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用微Y企业库连接mysql到的奇怪问?/title><link>http://www.shnenglu.com/true/archive/2011/01/24/139216.html</link><dc:creator>true</dc:creator><author>true</author><pubDate>Mon, 24 Jan 2011 04:38:00 GMT</pubDate><guid>http://www.shnenglu.com/true/archive/2011/01/24/139216.html</guid><wfw:comment>http://www.shnenglu.com/true/comments/139216.html</wfw:comment><comments>http://www.shnenglu.com/true/archive/2011/01/24/139216.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/true/comments/commentRss/139216.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/true/services/trackbacks/139216.html</trackback:ping><description><![CDATA[   有个存储q程内容如下Q?br>    <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> InsertProfile(Profile model)<br><img id=Codehighlighter1_47_776_Open_Image onclick="this.style.display='none'; Codehighlighter1_47_776_Open_Text.style.display='none'; Codehighlighter1_47_776_Closed_Image.style.display='inline'; Codehighlighter1_47_776_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_47_776_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_47_776_Closed_Text.style.display='none'; Codehighlighter1_47_776_Open_Image.style.display='inline'; Codehighlighter1_47_776_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_47_776_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_47_776_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_55_714_Open_Image onclick="this.style.display='none'; Codehighlighter1_55_714_Open_Text.style.display='none'; Codehighlighter1_55_714_Closed_Image.style.display='inline'; Codehighlighter1_55_714_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_55_714_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_55_714_Closed_Text.style.display='none'; Codehighlighter1_55_714_Open_Image.style.display='inline'; Codehighlighter1_55_714_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_55_714_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_55_714_Open_Text><span style="COLOR: #000000">{            <br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    DbCommand dbc </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> m_Db.GetStoredProcCommand(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Profile_Insert</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    <br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    m_Db.AddInParameter(dbc, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">@pSourceID</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, DbType.String, model.SourceID);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    m_Db.AddInParameter(dbc, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">@pName</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, DbType.String, model.Name);               <br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    m_Db.AddInParameter(dbc, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">@pAddress</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, DbType.String, model.Address);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    m_Db.AddInParameter(dbc, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">@pCity</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, DbType.String, model.City);                       <br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    m_Db.AddInParameter(dbc, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">@pTel</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, DbType.String, model.Tel);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    m_Db.AddInParameter(dbc, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">@pCode</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, DbType.String, model.code);               <br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    <br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">object</span><span style="COLOR: #000000"> obj </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> m_Db.ExecuteScalar(dbc);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (obj </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_642_684_Open_Image onclick="this.style.display='none'; Codehighlighter1_642_684_Open_Text.style.display='none'; Codehighlighter1_642_684_Closed_Image.style.display='inline'; Codehighlighter1_642_684_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_642_684_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_642_684_Closed_Text.style.display='none'; Codehighlighter1_642_684_Open_Image.style.display='inline'; Codehighlighter1_642_684_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_642_684_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_642_684_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">.Parse(obj.ToString());<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_693_711_Open_Image onclick="this.style.display='none'; Codehighlighter1_693_711_Open_Text.style.display='none'; Codehighlighter1_693_711_Closed_Image.style.display='inline'; Codehighlighter1_693_711_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_693_711_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_693_711_Closed_Text.style.display='none'; Codehighlighter1_693_711_Open_Image.style.display='inline'; Codehighlighter1_693_711_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_693_711_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_693_711_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (System.Exception e)<br><img id=Codehighlighter1_745_774_Open_Image onclick="this.style.display='none'; Codehighlighter1_745_774_Open_Text.style.display='none'; Codehighlighter1_745_774_Closed_Image.style.display='inline'; Codehighlighter1_745_774_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_745_774_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_745_774_Closed_Text.style.display='none'; Codehighlighter1_745_774_Open_Image.style.display='inline'; Codehighlighter1_745_774_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_745_774_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_745_774_Open_Text><span style="COLOR: #000000">{               <br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div> <br>上面的AddInParameter的参数顺序和Profile_insert在数据库中定义的参数序不同。之前都能正常工作,上周六突然发C行了Q实际写入表的时候,序乱掉了,直到今天才找到解x案:<strong>把AddIn的参数顺序和声明的参C持一?/strong>。这个问题太奇怪了。大概环境是Q表的存储引擎ؓMyISAMQ上百万记录Qmysql部v在ubuntuQmysql版本5.1.53?br>      最开始的思\是:<br>      1. 代码问题      <br>      2. DbCommand dbc = m_Db.GetStoredProcCommand("Profile_Insert");的多U程调用<br>      3. mysql的配|问?br>思维定势D没怀疑过参数序,上面存储q程是ؓ说明问题而时改动的Q实际系l中的存储过E和业务有很强的兌Q不方便介绍.<br>       <img src ="http://www.shnenglu.com/true/aggbug/139216.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/true/" target="_blank">true</a> 2011-01-24 12:38 <a href="http://www.shnenglu.com/true/archive/2011/01/24/139216.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql查询结果保存到文ghttp://www.shnenglu.com/true/archive/2011/01/19/138825.htmltruetrueWed, 19 Jan 2011 01:55:00 GMThttp://www.shnenglu.com/true/archive/2011/01/19/138825.htmlhttp://www.shnenglu.com/true/comments/138825.htmlhttp://www.shnenglu.com/true/archive/2011/01/19/138825.html#Feedback0http://www.shnenglu.com/true/comments/commentRss/138825.htmlhttp://www.shnenglu.com/true/services/trackbacks/138825.html--------------------------------------分割U?---------------------------------------
         use appdb;
         set names utf8;
         select FeedID, City , Message  from Feed limit 1000;
--------------------------------------分割U?---------------------------------------
上面的set names utf8语句是设施当前用的~码Q如果编码和数据库的~码不一_会出Cؕ?br>      2.执行如下Q?br>     [root@proxy tianqg]# mysql -uroot -p < query.sql > query.txt
回RQ输入密码,在当前目录下会生查询结果文件query.txt
      q些语句以前都是非常熟悉的,昨天有h问vQ一时没有给出准的回答Q命令行操作q种东西是容易忘记的Q还是记下来备忘?

true 2011-01-19 09:55 发表评论
]]>
mysql中在not in后面慎用 select子查?及时表的?/title><link>http://www.shnenglu.com/true/archive/2011/01/13/138458.html</link><dc:creator>true</dc:creator><author>true</author><pubDate>Thu, 13 Jan 2011 05:05:00 GMT</pubDate><guid>http://www.shnenglu.com/true/archive/2011/01/13/138458.html</guid><wfw:comment>http://www.shnenglu.com/true/comments/138458.html</wfw:comment><comments>http://www.shnenglu.com/true/archive/2011/01/13/138458.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/true/comments/commentRss/138458.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/true/services/trackbacks/138458.html</trackback:ping><description><![CDATA[      有个存储q程Q功能是Q根据用户名查询非好友的IDQ代码如下:<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">begin<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>  select UserID  from  Users<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    where<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    UserID </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> pUserID and<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    Users.UserID  not </span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    (<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>        select FriendID from Users_Friend where Users_Friend.UserID </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> pUserID and DeleteFlag </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    )<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    and<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    Users.Name like BINARY  concat(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,pUserName,</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">)  ;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>end</span></div>  其中QpUserID是搜索者的UID,pUserName是要搜烦的用户名。今天发现这个存储过E非常慢Q分析结论是Qnot in 后面的select子查询是每次都执行的Q这Z意料QmysqlN不能优化掉这L查询吗?<br>      后来用了临时表的ҎQ如下:<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">begin<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    Create TEMPORARY  Table  IF NOT EXISTS temp(FriendID </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> );<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    insert into temp(FriendID) select FriendID from Users_Friend where Users_Friend.UserID </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> pUserID and DeleteFlag </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>      select UserID  from  Users<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    where<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    UserID </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> pUserID and<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    Users.UserID  not </span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    (<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>        select FriendID from temp<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    )<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    and<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    Users.Name like BINARY  concat(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,pUserName,</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">)  ;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    drop TEMPORARY  table temp;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>end</span></div> <br>问题较好的解决了Q因Z时表temp中保存的都是好友的IDQ非常快Q不用每ơ都L行好友的{选逻辑。另外一U方式是Q将好友ID作ؓ参数传递到存储q程中,在程序外面查询好友,但要改动E序?br>  <img src ="http://www.shnenglu.com/true/aggbug/138458.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/true/" target="_blank">true</a> 2011-01-13 13:05 <a href="http://www.shnenglu.com/true/archive/2011/01/13/138458.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql的unix旉?/title><link>http://www.shnenglu.com/true/archive/2010/12/20/137000.html</link><dc:creator>true</dc:creator><author>true</author><pubDate>Mon, 20 Dec 2010 04:01:00 GMT</pubDate><guid>http://www.shnenglu.com/true/archive/2010/12/20/137000.html</guid><wfw:comment>http://www.shnenglu.com/true/comments/137000.html</wfw:comment><comments>http://www.shnenglu.com/true/archive/2010/12/20/137000.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/true/comments/commentRss/137000.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/true/services/trackbacks/137000.html</trackback:ping><description><![CDATA[   手册上的说明Q?br>    <p><code class=literal>   UNIX_TIMESTAMP()</code>, <code class=literal>UNIX_TIMESTAMP(<em class=replaceable><code>date</code></em>)</code> </p> <p>If called with no argument, returns a Unix timestamp (seconds since <code class=literal>'1970-01-01 00:00:00'</code> UTC) as an unsigned integer. If <code class=literal>UNIX_TIMESTAMP()</code> is called with a <em class=replaceable><code>date</code></em> argument, it returns the value of the argument as seconds since <code class=literal>'1970-01-01 00:00:00'</code> UTC. <em class=replaceable><code>date</code></em> may be a <code class=literal>DATE</code> string, a <code class=literal>DATETIME</code> string, a <code class=literal>TIMESTAMP</code>, or a number in the format <code class=literal>YYMMDD</code> or <code class=literal>YYYYMMDD</code>. The server interprets <em class=replaceable><code>date</code></em> as a value in the current time zone and converts it to an internal value in UTC. Clients can set their time zone as described in <a title="5.11.8. MySQL Server Time Zone Support" href="mk:@MSITStore:E:\MeYou\meyou2.0\meyou_server\W三Ҏ件\MysqlManual.chm::/ch05s11.html#time-zone-support"><u><font color=#0000ff>Section 5.11.8, “MySQL Server Time Zone Support”</font></u></a>. </p> <p><br>      q里?font face="Courier New">UNIX_TIMESTAMP()的返回值和C函数time(NULL)的返回值含义一P<br>  mysql> select UNIX_TIMESTAMP();<br>+------------------+<br>| UNIX_TIMESTAMP() |<br>+------------------+<br>|       1292815556 |<br>+------------------+<br>1 row in set</font></p> <p><font face="Courier New">mysql> select FROM_UNIXTIME(1292815556);<br>+---------------------------+<br>| FROM_UNIXTIME(1292815556) |<br>+---------------------------+<br>| 2010-12-20 11:25:56       |<br>+---------------------------+<br>1 row in set</font></p> <img src ="http://www.shnenglu.com/true/aggbug/137000.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/true/" target="_blank">true</a> 2010-12-20 12:01 <a href="http://www.shnenglu.com/true/archive/2010/12/20/137000.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql存储q程中用事?/title><link>http://www.shnenglu.com/true/archive/2010/09/16/126778.html</link><dc:creator>true</dc:creator><author>true</author><pubDate>Thu, 16 Sep 2010 07:57:00 GMT</pubDate><guid>http://www.shnenglu.com/true/archive/2010/09/16/126778.html</guid><wfw:comment>http://www.shnenglu.com/true/comments/126778.html</wfw:comment><comments>http://www.shnenglu.com/true/archive/2010/09/16/126778.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/true/comments/commentRss/126778.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/true/services/trackbacks/126778.html</trackback:ping><description><![CDATA[     摘要: mysql 存储q程 事物 异常处理  <a href='http://www.shnenglu.com/true/archive/2010/09/16/126778.html'>阅读全文</a><img src ="http://www.shnenglu.com/true/aggbug/126778.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/true/" target="_blank">true</a> 2010-09-16 15:57 <a href="http://www.shnenglu.com/true/archive/2010/09/16/126778.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转自里面的讨论sql语句QvarbinarycdQ取某连l几个字节,排序http://www.shnenglu.com/true/archive/2010/08/31/125419.htmltruetrueTue, 31 Aug 2010 08:57:00 GMThttp://www.shnenglu.com/true/archive/2010/08/31/125419.htmlhttp://www.shnenglu.com/true/comments/125419.htmlhttp://www.shnenglu.com/true/archive/2010/08/31/125419.html#Feedback0http://www.shnenglu.com/true/comments/commentRss/125419.htmlhttp://www.shnenglu.com/true/services/trackbacks/125419.htmlq样的需求一般是做游戏相关的Q)

true 2010-08-31 16:57 发表评论
]]>
mysql自动备䆾脚本http://www.shnenglu.com/true/archive/2010/08/27/124914.htmltruetrueFri, 27 Aug 2010 01:39:00 GMThttp://www.shnenglu.com/true/archive/2010/08/27/124914.htmlhttp://www.shnenglu.com/true/comments/124914.htmlhttp://www.shnenglu.com/true/archive/2010/08/27/124914.html#Feedback3http://www.shnenglu.com/true/comments/commentRss/124914.htmlhttp://www.shnenglu.com/true/services/trackbacks/124914.html1.开动启动备份功?br>2.备䆾文g名按照日期及旉分文?br>3.包含存储q程的备?br>
主要有两个文Ӟ
1.mysqlbackup.py是定旉动脚?q里没用cron)Q内容如下:
---------------------------------------------------------分割U?--------------------------------------------------------------------------

import time,os,sys

while 1:
        os.system("sh /root/mysql/mysqlbackup.sh")
        time.sleep(60*60)


---------------------------------------------------------分割U?---------------------------------------------------------------------------

2.mysqlbackup.sh是具体的备䆾脚本Q实现备份表和存储过E,内容如下Q?br>---------------------------------------------------------分割U?--------------------------------------------------------------------------

#!/bin/sh

Time=`date +%Y_%m_%d_%H_%M_%S`

mysqldump -uroot -pmysql sns2 -R > /root/mysql/logs/sns2.$Time.sql

---------------------------------------------------------分割U?--------------------------------------------------------------------------

3.开机启动备份功能:?etc/rc.local 文g里面d下面内容Q注意要指定python的可执行文g目录Q此处ؓ/usr/bin/python,后面是py脚本的目录:
---------------------------------------------------------分割U?--------------------------------------------------------------------------
/usr/bin/python /root/mysql/mysqlbackup.py &
---------------------------------------------------------分割U?--------------------------------------------------------------------------



true 2010-08-27 09:39 发表评论
]]>
mysql存储q程事务执行q程中出现异常回滚机?/title><link>http://www.shnenglu.com/true/archive/2010/08/12/123178.html</link><dc:creator>true</dc:creator><author>true</author><pubDate>Thu, 12 Aug 2010 06:38:00 GMT</pubDate><guid>http://www.shnenglu.com/true/archive/2010/08/12/123178.html</guid><wfw:comment>http://www.shnenglu.com/true/comments/123178.html</wfw:comment><comments>http://www.shnenglu.com/true/archive/2010/08/12/123178.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/true/comments/commentRss/123178.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/true/services/trackbacks/123178.html</trackback:ping><description><![CDATA[<p>1.SQLEXCEPTION对应存储q程中的所有异?br>2.通过输出参数Q来q回事务是否执行成功<br>3.一个疑问:Z么mysql事务执行成功后,受媄响的记录数都?呢?<br><br>下ؓSQL代码Q?br>-- Procedure "Users_Test" DDL</p> <p>CREATE <a href="mailto:DEFINER=`root`@`%">DEFINER=`root`@`%</a>` PROCEDURE `Users_Test`(out pCode int)<br>begin</p> <p> </p> <p>declare userID int default 0;</p> <p>DECLARE CONTINUE HANDLER FOR SQLEXCEPTION</p> <p>begin</p> <p>rollback;</p> <p>SET pCode=1;</p> <p>end;</p> <p> </p> <p>set pCode = 0;</p> <p> -- savepoint sp;</p> <p> </p> <p>  -- SET   AUTOCOMMIT= 1;</p> <p>  start transaction;</p> <p> -- call Users_WriteLog('haha ,log');</p> <p> insert into Users_Login (LoginName,LoginPwd,Banned) values ('1234','0000',0);</p> <p> </p> <p>  set userID = @@IDENTITY;</p> <p>  insert into Users_Profile(UserID,UserName,CharactorName,HeadImageID,Sex,FromType,ProfileComplete)</p> <p>  values ( 5,'999999',10,1,1,0,1);</p> <p> commit;</p> <p> </p> <p>--  SELECT ROW_COUNT();</p> <p> -- set rowcnt = mysql_affected_rows();</p> <p>-- rollback to sp;</p> <p> </p> <p>end;<br></p> <img src ="http://www.shnenglu.com/true/aggbug/123178.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/true/" target="_blank">true</a> 2010-08-12 14:38 <a href="http://www.shnenglu.com/true/archive/2010/08/12/123178.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>360竟会自动关闭mysqlhttp://www.shnenglu.com/true/archive/2009/08/29/94730.htmltruetrueSat, 29 Aug 2009 01:10:00 GMThttp://www.shnenglu.com/true/archive/2009/08/29/94730.htmlhttp://www.shnenglu.com/true/comments/94730.htmlhttp://www.shnenglu.com/true/archive/2009/08/29/94730.html#Feedback0http://www.shnenglu.com/true/comments/commentRss/94730.htmlhttp://www.shnenglu.com/true/services/trackbacks/94730.html



true 2009-08-29 09:10 发表评论
]]>
MySQL服务l护W记-转帖http://www.shnenglu.com/true/archive/2008/01/12/41035.htmltruetrueSat, 12 Jan 2008 09:45:00 GMThttp://www.shnenglu.com/true/archive/2008/01/12/41035.htmlhttp://www.shnenglu.com/true/comments/41035.htmlhttp://www.shnenglu.com/true/archive/2008/01/12/41035.html#Feedback0http://www.shnenglu.com/true/comments/commentRss/41035.htmlhttp://www.shnenglu.com/true/services/trackbacks/41035.htmlMySQL服务l护W记

内容摘要Q用MySQL服务的一些经验,主要从以下几个方面考虑的MySQL服务规划设计。对于高负蝲站点来说PHP和MySQLq行在一P或者说M应用和数据库q行在一L规划Q都是性能最大的瓉Q这L设计有如让h一手画圆一手画方,q样2个h的工作效率肯定不如让一个h专门d一个h专门L效率高,让应用和数据库都跑在一台高性能服务器上说不定还不如跑在2台普通服务器上快?br>

以下是针对MySQL作ؓ专门的数据库服务器的优化Q?/p>

  1. MySQL服务的安?配置的通用性;
  2. pȝ的升U和数据q移方便性;
  3. 备䆾和系l快速恢复;
  4. 数据库应用的设计要点Q?
  5. 一ơ应用优化实战;

MySQL服务器的规划
=================
Z以后l护Q升U备份的方便和数据的安全性,最好将MySQLE序文g和数据分别安装在“不同的硬?#8221;上?br>

         /   / 
| /usr <== 操作pȝ
| /home/mysql <== mysqlȝ录,Z方便升Q这只是一个最新版本目录的链接
盘1==>| /home/mysql-3.23.54/ <== 最新版本的mysql /home/mysql链接到这?br> \ /home/mysql-old/ <== 以前q行的旧版本的mysql

/ /data/app_1/ <== 应用数据和启动脚本等
盘2==>| /data/app_2/
\ /data/app_3/

MySQL服务的安装和服务的启动:
MySQL一般用当前STABLE的版本:
量不?-with-charset=选项Q我感觉with-charset只在按字母排序的时候才有用Q这些选项会对数据的迁Ud来很多麻烦?br>量不用innodbQinnodb主要用于需要外键,事务{企业支持Q代h速度比MYISAM有数量的下降?br>./configure --prefix=/home/mysql --without-innodb
make
make install

服务的启动和停止
================
1 复制~省的mysql/var/mysql?/data/app_1/目录下,
2 MySQLD的启动脚本:start_mysql.sh
#!/bin/sh
rundir=`dirname "$0"`
echo "$rundir"
/home/mysql/bin/safe_mysqld --user=mysql --pid-file="$rundir"/mysql.pid --datadir="$rundir"/var "$@"\
-O max_connections=500 -O wait_timeout=600 -O key_buffer=32M --port=3402 --socket="$rundir"/mysql.sock &

注释Q?br>--pid-file="$rundir"/mysql.pid --socket="$rundir"/mysql.sock --datadir="$rundir"/var
目的都是相应数据和应用临时文g攑֜一P
-O 后面一般是服务器启动全局变量优化参数Q有时候需要根据具体应用调_
--port: 不同的应用用PORT参数分布C同的服务上去Q一个服务可以提供的q接C般是MySQL服务的主要瓶颈;

修改不同的服务到不同的端口后Q在rc.local文g中加入:
/data/app_1/start_mysql.sh
/data/app_2/start_mysql.sh
/data/app_3/start_mysql.sh
注意Q必d全\?br>
3 MySQLD的停止脚本:stop_mysql.sh
#!/bin/sh
rundir=`dirname "$0"`
echo "$rundir"
/home/mysql/bin/mysqladmin -u mysql -S"$rundir"/mysql.sock shutdown

使用q个脚本的好处在于:
1 多个服务启动Q对于不同服务只需要修改脚本中?-port[=端口号]参数。单个目录下的数据和服务脚本都是可以独立打包的?br>2 所有服务相应文仉位于/data/app_1/目录下:比如Qmysql.pid mysql.sockQ当一台服务器上启动多个服务时Q多个服务不会互相媄响。但都放到缺省的/tmp/下则有可能被其他应用误删?br>3 当硬?出问题以后,直接硬?攑ֈ一台装好MySQL的服务器上就可以立刻恢复服务Q如果放到my.cnf里则q需要备份相应的配置文gQ?

服务启动?data/app_1/下相应的文g和目录分布如下:
/data/app_1/
    start_mysql.sh 服务启动脚本
    stop_mysql.sh 服务停止脚本
    mysql.pid 服务的进EID
    mysql.sock 服务的SOCK
    var/ 数据?br>       mysql/ 用户?br>       app_1_db_1/ 应用?br>       app_1_db_2/
...
/data/app_2/
...

查看所有的应用q程IDQ?br>cat /data/*/mysql.pid

查看所有数据库的错误日志:
cat /data/*/var/*.err

个hQMySQL的主要瓶颈在PORT的连接数上,因此Q将表结构优化好以后Q相应单个MySQL服务的CPU占用仍然?0Q以上,p考虑服务拆分到多个PORT上运行了?/p>

服务的备?br>==========
量使用MySQL DUMP而不是直接备份数据文Ӟ以下是一个按weekday数据轮循备份的脚本Q备份的间隔和周期可以根据备份的需求确?br>/home/mysql/bin/mysqldump -S/data/app_1/mysql.sock -umysql db_name | gzip -f>/path/to/backup/db_name.`date +%w`.dump.gz
因此写在CRONTAB中一般是Q?br>15 4 * * * /home/mysql/bin/mysqldump -S/data/app_1/mysql.sock -umysql db_name | gzip -f>/path/to/backup/db_name.`date +\%w`.dump.gz
注意Q?br>1 在crontab?%'需要{义成'\%'
2 Ҏ日志l计Q应用负载最低的时候一般是在早?-6?br>

先备份在本地然后传到q程的备份服务器上,或者直接徏立一个数据库备䆾帐号Q直接在q程的服务器上备份,q程备䆾只需要将以上脚本中的-S /path/to/msyql.sockҎ-h IP.ADDRESS卛_?br>
数据的恢复和pȝ的升U?br>======================
日常l护和数据迁U:在数据盘没有被破坏的情况?br>盘一般是pȝ中寿命最低的g。而系l(包括操作pȝ和MySQL应用Q的升和硬件升U,都会遇到数据q移的问题?br>只要数据不变Q先装好服务器,然后直接数据盘Q硬?Q安装上Q只需要将启动脚本重新加入到rc.local文g中,pȝq是很好的恢复了?br>
N恢复Q数据库数据本n被破坏的情况?br>定破坏的时间点Q然后从备䆾数据中恢复?/p>

应用的设计要?br>==============
如果MySQL应用占用的CPU过10%应该考虑优化了?br>

  1. 如果q个服务可以被其他非数据库应用代替(比如很多Z数据库的计数器完全可以用WEB日志l计代替Q最好将其禁用:
    非用数据库不可吗Q虽然数据库的确可以化很多应用的l构设计Q但本n也是一个系l资源消耗比较大的应用。在某些情况下文本,DBM比数据库是更好的选择Q比如:很多应用如果没有很高的实时统计需求的话,完全可以先记录到文g日志中,定期的导入到数据库中做后l统计分析。如果还是需要记录简单的2l键Q值对应结构的话可以用类gDBM的HEAPcd表。因为HEAP表全部在内存中存取,效率非常高,但服务器H然断电时有可能出现数据丢失Q所以非帔R合存储在线用户信息Q日志等临时数据。即佉K要用数据库的,应用如果没有太复杂的数据完整性需求的化,完全可以不用那些支持外键的商业数据库,比如MySQL。只有非帔R要完整的商业逻辑和事务完整性的时候才需要Oracleq样的大型数据库。对于高负蝲应用来说完全可以把日志文ӞDBMQMySQL{轻量方式做前端数据采集格式,然后用Oracle MSSQL DB2 Sybase{做数据库仓库以完成复杂的数据库挖掘分析工作?br>有朋友和我说用标准的MyISAM表代替了InnoDB表以后,数据库性能提高?0倍?br>
  2. 数据库服务的主要瓉Q单个服务的q接?br>对于一个应用来_如果数据库表l构的设计能够按照数据库原理的范式来设计的话Qƈ且已l用了最新版本的MySQLQƈ且按照比较优化的方式q行了,那么最后的主要瓉一般在于单个服务的q接敎ͼ即一个数据库可以支持q发500个连接,最好也不要把应用用到这个地步,因ؓq发q接数过多数据库服务本n用于调度的线E的开销也会非常大了。所以如果应用允许的话:让一台机器多跑几个MySQL服务分担。将服务均衡的规划到多个MySQL服务端口上:比如app_1 ==> 3301 app_2 ==> 3302...app_9 ==> 3309。一?G内存的机器跑?0个MySQL是很正常的。让10个MySQLD承担1000个ƈ发连接效率要比让2个MySQLD承担1000个效率高的多。当Ӟq样也会带来一些应用编E上的复杂度Q?br>
  3. 使用单独的数据库服务器(不要让数据库和前台WEB服务抢内存)QMySQL拥有更多的内存就可能能有效的q行l果集的~存Q在前面的启动脚本中有一?O key_buffer=32M参数是用于缺省的8M索引~存增加?2MQ当然对于)

  4. 应用量使用PCONNECT和polling机制Q用于节省MySQL服务建立q接的开销Q但也会造成MySQLq发链接数过多(每个HTTPD都会对应一个MySQLU程Q;

  5. 表的横向拆分Q让最常被讉K?0%的数据放在一个小表里Q?0%的历史数据放在一个归档表里(所谓:快慢表)Q数据中间通过定期“搬家”和定期删除无效数据来节省Q毕竟大部分应用Q比如论坛)讉K2个月前数据的几率会非常少Q而且价g不是很高。这样对于应用来说L在一个比较小的结果中进行数据选择Q比较有利于数据的缓存,不要指望MySQL中对单表记录条数?0万以上q有比较高的效率。而且有时候数据没有必要做那么_Q比如一个快表中查到了某个h发表的文章有60条结果,快表和慢表的比例?:20Q那么就可以单的估计q个Z共发表了1200。Google的搜索结果数也是一P对于很多上十万的l果敎ͼ后面很多的数字都是通过一定的法估计出来的?br>
  6. 数据库字D设计:表的U向拆分Q过渡范化)Q将所有的定长字段Qchar, int{)攑֜一个表里,所有的变长字段Qvarchar,text,blob{)攑֜另外一个表里,2个表之间通过主键兌Q这P定长字段表可以得到很大的优化Q这样可以用HEAP表类型,数据完全在内存中存取Q,q里也说明另外一个原则,对于我们来说Q尽量用定长字D可以通过I间的损失换取访问效率的提高。在MySQL4中也出现了支持外键和事务的InnoDBcd表,标准的MyISAM格式表和ZHASHl构的HEAP内存表,MySQL之所以支持多U表cdQ实际上是针对不同应用提供了不同的优化方式;

  7. 仔细的检查应用的索引设计Q可以在服务启动参数中加?--log-slow-queries[=file]用于跟踪分析应用瓉Q对于跟t服务瓶颈最单的Ҏ是用MySQL的status查看MySQL服务的运行统计和show processlist来查看当前服务中正在q行的SQLQ如果某个SQLl常出现在PROCESS LIST中,一。有可能被查询的此时非常多,二,里面有媄响查询的字段没有索引Q三Q返回的l果数过多数据库正在排序QSORTINGQ;所以做一个脚本:比如?U运行以下show processlist;把结果输出到文g中,看到底是什么查询在吃CPU?br>
  8. 全文索:如果相应字段没有做全文烦引的话,全文索将是一个非常消耗CPU的功能,因ؓ全文索是用不上一般数据库的烦引的Q所以要q行相应字段记录遍历。关于全文烦引可以参考一下基?a >Java的全文烦引引擎lucene的介l?/font>?br>
  9. 前台应用的记录缓存:比如一个经怋用数据库认证Q如果需要有更新用户最后登陆时间的操作Q最好记录更新后把用户攑ֈ一个缓存中Q设|?个小时后q期Q,q样如果用户?个小时内再次使用到登陆,q接从~存里认证,避免了过于频J的数据库操作?br>
  10. 查询优先的表应该可能ؓwhere和order by字句中的字段加上索引Q数据库更新插入优先的应用烦引越越好?br>

MQ对于Q何数据库单表记录过100万条优化都是比较困难的,关键是要把应用能够{化成数据库比较擅长的数据上限内。也是把复杂需求简化成比较成熟的解x案内?/p>

一ơ优化实?br>============
以下例子是对一个论坛应用进行的优化Q?br>

  1. 用Webalizer代替了原来的通过数据库的l计?br>
  2. 首先通过TOP命o查看MySQL服务的CPU占用左右80%和内存占用:10MQ说明数据库的烦引缓存已l用完了Q修改启动参敎ͼ增加?O key_buffer=32MQ过一D|间等数据库稳定后看的内存占用是否辑ֈ上限。最后将~存一直增加到64MQ数据库~存才基本能充分使用。对于一个数据库应用来说Q把内存l数据库比给WEB服务实用的多Q因为MySQL查询速度的提高能加快web应用从而节省ƈ发的WEB服务所占用的内存资源?br>
  3. 用show processlist;l计l常出现的SQLQ?br>
    每分钟运行一ơshow processlistq记录日志:
    * * * * * (/home/mysql/bin/mysql -uuser -ppassword < /home/chedong/show_processlist.sql >>  /home/chedong/mysql_processlist.log)

    show_processlist.sql里就一句:
    show processlist;

    比如可以从日志中包含where的字句过滤出来:
    grep where mysql_processlist.log
    如果发现有死锁,一定要重新审视一下数据库设计了,对于一般情况:查询速度很慢Q就SQL where字句中没有烦引的字段加上索引Q如果是排序慢就order by字句中没有烦引的字段加上。对于有%like%的查询,考虑以后用和用全文烦引加速?br>
  4. q是Ҏshow processlist;看经常有那些数据库被频繁使用Q考虑数据库拆分到其他服务端口上?

MSSQL到MySQL的数据迁U:ACCESSQMySQL ODBC Driver

在以前的几次数据q移实践q程中,我发现最便的数据q移q程q不是通过专业的数据库q移工具Q也不是MSSQL自n的DTSq行数据q移Q迁U过E中间会有很多表出错误警告)Q但通过MSSQL数据库通过ACCESS获取外部数据导入到数据库中,然后用ACCESS的表==>右键==>导出Q制定ODBCQ通过MySQL的DSN数据导出。这栯Ud部分数据都会非常利Q如果导出的表有索引问题Q还会出d索引提示QDTS׃行)Q然后剩余的工作是在MySQL中设计字D对应的SQL脚本了?/p>

参考文档:

MySQL的参考:
http://dev.mysql.com/doc/



true 2008-01-12 17:45 发表评论
]]>
mysqlȝ【{?/title><link>http://www.shnenglu.com/true/archive/2007/09/05/31625.html</link><dc:creator>true</dc:creator><author>true</author><pubDate>Wed, 05 Sep 2007 06:49:00 GMT</pubDate><guid>http://www.shnenglu.com/true/archive/2007/09/05/31625.html</guid><wfw:comment>http://www.shnenglu.com/true/comments/31625.html</wfw:comment><comments>http://www.shnenglu.com/true/archive/2007/09/05/31625.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/true/comments/commentRss/31625.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/true/services/trackbacks/31625.html</trackback:ping><description><![CDATA[<strong>一?单查?</strong> <p>  单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等?br>  例如Q下面的语句查询testtable表中姓名?张三"的nickname字段和email字段?/p> <p>   SELECT nickname,email<br>  FROM testtable<br>  WHERE name='张三' <br><br>  (一) 选择列表</p> <p>  选择列表(select_list)指出所查询列,它可以是一l列名列表、星受表辑ּ、变?包括局部变量和全局变量){构成?/p> <p>  1、选择所有列</p> <p>  例如Q下面语句显Ctesttable表中所有列的数据:</p> <p>   SELECT *<br>  FROM testtable </p> <p>  2、选择部分列ƈ指定它们的显C次?/p> <p>  查询l果集合中数据的排列序与选择列表中所指定的列名排列顺序相同?br>  例如Q?/p> <p>   SELECT nickname,email<br>  FROM testtable </p> <p>  3、更改列标题</p> <p>  在选择列表中,可重新指定列标题。定义格式ؓQ?br>  列标?列名<br>  列名 列标?br>  如果指定的列标题不是标准的标识符格式Ӟ应用引号定界符Q例如,下列语句使用汉字昄列标题:</p> <p>   SELECT 늧=nickname,电子邮g=email<br>  FROM testtable </p> <p>  4、删除重复行</p> <p>  SELECT语句中用ALL或DISTINCT选项来显C中符合条件的所有行或删除其中重复的数据行,默认为ALL。用DISTINCT选项Ӟ对于所有重复的数据行在SELECTq回的结果集合中只保留一行?/p> <p>  5、限制返回的行数</p> <p>  使用TOP n [PERCENT]选项限制q回的数据行敎ͼTOP n说明q回n行,而TOP n PERCENTӞ说明n是表CZ癑ֈ敎ͼ指定q回的行数等于总行数的癑ֈ之几?br>  例如Q?/p> <p>   SELECT TOP 2 *<br>  FROM testtable<br>  SELECT TOP 20 PERCENT *<br>  FROM testtable</p> <p>  (?FROM子句 </p> <p>  FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔?br>  在FROM子句同时指定多个表或视图Ӟ如果选择列表中存在同名列Q这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定Q?/p> <p>    SELECT username,citytable.cityid<br>  FROM usertable,citytable<br>  WHERE usertable.cityid=citytable.cityid </p> <p>  在FROM子句中可用以下两U格式ؓ表或视图指定别名Q?br>  表名 as 别名<br>  表名 别名</p> <p>  (? FROM子句</p> <p>  FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔?br>  在FROM子句同时指定多个表或视图Ӟ如果选择列表中存在同名列Q这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定Q?/p> <p>   SELECT username,citytable.cityid<br>  FROM usertable,citytable<br>  WHERE usertable.cityid=citytable.cityid </p> <p>  在FROM子句中可用以下两U格式ؓ表或视图指定别名Q?br>  表名 as 别名<br>  表名 别名<br>  例如上面语句可用表的别名格式表示为:</p> <p>   SELECT username,b.cityid<br>  FROM usertable a,citytable b<br>  WHERE a.cityid=b.cityid </p> <p>  SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所q回的结果集合中查询数据?/p> <p>  例如Q?/p> <p>    SELECT a.au_fname+a.au_lname<br>  FROM authors a,titleauthor ta<br>  (SELECT title_id,title<br>  FROM titles<br>  WHERE ytd_sales>10000<br>  ) AS t<br>  WHERE a.au_id=ta.au_id<br>  AND ta.title_id=t.title_id </p> <p>  此例中,SELECTq回的结果集合给予一别名tQ然后再从中索数据?/p> <p>  (? 使用WHERE子句讄查询条g</p> <p>  WHERE子句讄查询条gQ过滤掉不需要的数据行。例如下面语句查询年龄大?0的数据:</p> <p>   SELECT *<br>  FROM usertable<br>  WHERE age>20 </p> <p>  WHERE子句可包括各U条件运符Q?br>  比较q算W?大小比较)Q?gt;?gt;=??lt;?lt;=?lt;>?>?<<br>  范围q算W?表达式值是否在指定的范?QBETWEEN...AND...<br>  NOT BETWEEN...AND...<br>  列表q算W?判断表达式是否ؓ列表中的指定?QIN (?,?......)<br>  NOT IN (?,?......)<br>  模式匚wW?判断值是否与指定的字W通配格式相符):LIKE、NOT LIKE<br>  I值判断符(判断表达式是否ؓI?QIS NULL、NOT IS NULL<br>  逻辑q算W?用于多条件的逻辑q接)QNOT、AND、OR</p> <p>  1、范围运符例:age BETWEEN 10 AND 30相当于age>=10 AND age<=30<br>  2、列表运符例:country IN ('Germany','China')<br>  3、模式匹配符例:常用于模p查找,它判断列值是否与指定的字W串格式相匹配。可用于char、varchar、text、ntext、datetime和smalldatetime{类型查询?br>  可用以下通配字符Q?br>  癑ֈ?Q可匚wLcd和长度的字符Q如果是中文Q请使用两个癑ֈ号即%%?br>  下划U_Q匹配单个Q意字W,它常用来限制表达式的字符长度?br>  Ҏ号[]Q指定一个字W、字W串或范_要求所匚w对象为它们中的Q一个。[^]Q其取g[] 相同Q但它要求所匚w对象为指定字W以外的M个字W?br>  例如Q?br>  限制以Publishingl尾Q用LIKE '%Publishing'<br>  限制以A开_LIKE '[A]%'<br>  限制以A开头外QLIKE '[^A]%'</p> <p>  4、空值判断符例WHERE age IS NULL</p> <p>  5、逻辑q算W:优先UؓNOT、AND、OR</p> <p>  (?查询l果排序 </p> <p>  使用ORDER BY子句Ҏ询返回的l果按一列或多列排序。ORDER BY子句的语法格式ؓQ?br>  ORDER BY {column_name [ASC|DESC]} [,...n]<br>  其中ASC表示升序Qؓ默认|DESC为降序。ORDER BY不能按ntext、text和image数据cdq行?br>  序?br>  例如Q?/p> <p>    SELECT *<br>  FROM usertable<br>  ORDER BY age desc,userid ASC </p> <p>  另外Q可以根据表辑ּq行排序?/p> <p>  <strong>二?联合查询</strong></p> <p>  UNIONq算W可以将两个或两个以上上SELECT语句的查询结果集合合q成一个结果集合显C,x行联合查询。UNION的语法格式ؓQ?/p> <p>    select_statement<br>  UNION [ALL] selectstatement<br>  [UNION [ALL] selectstatement][...n] </p> <p>  其中selectstatement为待联合的SELECT查询语句?/p> <p>  ALL选项表示所有行合ƈ到结果集合中。不指定该项Ӟ被联合查询结果集合中的重复行只保留一行?/p> <p>  联合查询Ӟ查询l果的列标题为第一个查询语句的列标题。因此,要定义列标题必须在第一个查询语句中定义。要对联合查询结果排序时Q也必须使用W一查询语句中的列名、列标题或者列序号?</p> <p>  在用UNION q算W时Q应保证每个联合查询语句的选择列表中有相同数量的表辑ּQƈ且每个查询选择表达式应h相同的数据类型,或是可以自动它们{换ؓ相同的数据类型。在自动转换Ӟ对于数值类型,pȝ低_ֺ的数据类型{换ؓ高精度的数据cd?/p> <p>  在包括多个查询的UNION语句中,其执行顺序是自左臛_Q用括号可以改变这一执行序。例如:</p> <p>  查询1 UNION (查询2 UNION 查询3)</p> <p>  <strong>三、连接查?/strong></p> <p>  通过q接q算W可以实现多个表查询。连接是关系数据库模型的主要特点Q也是它区别于其它类型数据库理pȝ的一个标志?/p> <p>  在关pL据库理pȝ中,表徏立时各数据之间的关系不必定Q常把一个实体的所有信息存攑֜一个表中。当索数据时Q通过q接操作查询出存攑֜多个表中的不同实体的信息。连接操作给用户带来很大的灵zL,他们可以在Q何时候增加新的数据类型。ؓ不同实体创徏新的表,后通过q接q行查询?/p> <p>  q接可以在SELECT 语句的FROM子句或WHERE子句中徏立,似是而非在FROM子句中指接时有助于将q接操作与WHERE子句中的搜烦条g区分开来。所以,在Transact-SQL中推荐用这U方法?/p> <p>  SQL-92标准所定义的FROM子句的连接语法格式ؓQ?/p> <p>   FROM join_table join_type join_table<br>  [ON (join_condition)] </p> <p>  其中join_table指出参与q接操作的表名,q接可以对同一个表操作Q也可以对多表操作,对同一个表操作的连接又U做自连接?/p> <p>  join_type 指出q接cdQ可分ؓ三种Q内q接、外q接和交叉连接。内q接(INNER JOIN)使用比较q算W进行表间某(?列数据的比较操作Qƈ列出q些表中与连接条件相匚w的数据行。根据所使用的比较方式不同,内连接又分ؓ{D接、自然连接和不等q接三种。外q接分ؓ左外q接(LEFT OUTER JOIN或LEFT JOIN)、右外连?RIGHT OUTER JOIN或RIGHT JOIN)和全外连?FULL OUTER JOIN或FULL JOIN)三种。与内连接不同的是,外连接不只列Zq接条g相匹配的行,而是列出左表(左外q接?、右?叛_q接?或两个表(全外q接?中所有符合搜索条件的数据行?/p> <p>  交叉q接(CROSS JOIN)没有WHERE 子句Q它q回q接表中所有数据行的笛卡尔U,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以W二个表中符合查询条件的数据行数?/p> <p>  q接操作中的ON (join_condition) 子句指出q接条gQ它pq接表中的列和比较运符、逻辑q算W等构成?/p> <p>  无论哪种q接都不能对text、ntext和image数据cd列进行直接连接,但可以对q三U列q行间接q接。例如:</p> <p>   SELECT p1.pub_id,p2.pub_id,p1.pr_info<br>  FROM pub_info AS p1 INNER JOIN pub_info AS p2<br>  ON DATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info) </p> <p>  (一)内连?br>  内连接查询操作列Zq接条g匚w的数据行Q它使用比较q算W比较被q接列的列倹{内q接分三U:<br>  1、等D接:在连接条件中使用{于?=)q算W比较被q接列的列|其查询结果中列出被连接表中的所有列Q包括其中的重复列?br>  2、不{连接: 在连接条件用除{于q算W以外的其它比较q算W比较被q接的列的列倹{这些运符包括>?gt;=?lt;=?lt;?>?<?lt;>?br>  3、自然连接:在连接条件中使用{于(=)q算W比较被q接列的列|但它使用选择列表指出查询l果集合中所包括的列Qƈ删除q接表中的重复列?br>  例,下面使用{D接列出authors和publishers表中位于同一城市的作者和出版C:</p> <p>   SELECT *<br>  FROM authors AS a INNER JOIN publishers AS p<br>  ON a.city=p.city<br>  又如使用自然q接Q在选择列表中删除authors 和publishers 表中重复?city和state)Q?br>  SELECT a.*,p.pub_id,p.pub_name,p.country<br>  FROM authors AS a INNER JOIN publishers AS p<br>  ON a.city=p.city </p> <p>  (?外连?br>  内连接时Q返回查询结果集合中的仅是符合查询条? WHERE 搜烦条g?HAVING 条g)和连接条件的行。而采用外q接Ӟ它返回到查询l果集合中的不仅包含W合q接条g的行Q而且q包括左?左外q接?、右?叛_q接?或两个边接表(全外q接)中的所有数据行。如下面使用左外q接论坛内容和作者信息连接v来:</p> <p>   SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b<br>  ON a.username=b.username </p> <p>  下面使用全外q接city表中的所有作者以及user表中的所有作者,以及他们所在的城市Q?/p> <p>    SELECT a.*,b.*<br>  FROM city as a FULL OUTER JOIN user as b<br>  ON a.username=b.username </p> <p>  (?交叉q接<br>  交叉q接不带WHERE 子句Q它q回被连接的两个表所有数据行的笛卡尔U,q回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以W二个表中符合查询条件的数据行数。例Qtitles表中?cd书,而publishers表中?家出版社Q则下列交叉q接索到的记录数等?*8=48行?br>   SELECT type,pub_name<br>  FROM titles CROSS JOIN publishers<br>  ORDER BY type<br></p> <p>修改字段属?/p> <p>alter table tablename modify id int(10) unsigned auto_increment primary key not null</p> <p>修改默认?/p> <p>alter table tablename alter id default 0</p> <p>l字D增加primary key</p> <p>alter table tablename add primary key(id);</p> <p>删除primary key</p> <p>1、alter table tablename drop primary key;</p> <p>2、drop primary key on tablename;</p> <p><br>查看table表结?/p> <p>show create table tableName;</p> <p><br>修改table表数据引?/p> <p>alter table tableName ENGINE = MyISAM (InnoDB);</p> <p>增加字段<br>ALTER TABLE `table` ADD `field` INT(11) UNSIGNED NOT NULL</p> <p>删除字段</p> <p>alert table 'table' drop 'field'</p> <p> </p> <img src ="http://www.shnenglu.com/true/aggbug/31625.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/true/" target="_blank">true</a> 2007-09-05 14:49 <a href="http://www.shnenglu.com/true/archive/2007/09/05/31625.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MySQL使用tips【{?/title><link>http://www.shnenglu.com/true/archive/2007/08/30/31191.html</link><dc:creator>true</dc:creator><author>true</author><pubDate>Thu, 30 Aug 2007 02:20:00 GMT</pubDate><guid>http://www.shnenglu.com/true/archive/2007/08/30/31191.html</guid><wfw:comment>http://www.shnenglu.com/true/comments/31191.html</wfw:comment><comments>http://www.shnenglu.com/true/archive/2007/08/30/31191.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/true/comments/commentRss/31191.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/true/services/trackbacks/31191.html</trackback:ping><description><![CDATA[<table cellSpacing=0 cellPadding=0 width="90%" align=center border=0> <tbody> <tr> <th class=f24> <h1>MySQL使用tips</h1> </th> </tr> <tr> <td align=middle height=20><font color=#999999><small>作者:叉?(Email:imysql@gmail.com) 来源:http://imysql.cn (2006-07-12 17:05:03)</small></font></td> </tr> <tr> <td><br></td> </tr> <tr> <td class=l17><font class=f14 id=zoom><font color=#cccccc><!-- 正文begin --><br>1、用mysql内置函数转换ip地址和数?br>利用两个内置函数<br>inet_aton:ip地址转换成数字型<br>inet_ntoa:数字型转换成ip地址<br><br>2、充分利用mysql内置的format函数<br>其是在处理字符格式的时?例如?2345转换?2,345q样?只要?format(12345,0)卛_,如果用format(12345,2)则显C的?2,345.00?..<br><br>3、利用mysql的内|函数处理时间戳问题<br>eg : select FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');<br>l果: 2004 3rd August 03:35:48 2004<br><br>4、利用mysql_convert_table_format转换表类?br>需要DBI和DBD的mysql相关模块支持才能?例子:<br>mysql_convert_table_format --user=root --password='xx' --type=myisam test yejr<br><br>5、修改mysql表中的字D名<br>alter table tb_name change old_col new_col definition...<br><br>6、利用时变?br>select @var1:=a1+a2 as a_sum,@var2:=b1+b2 as b_sum,@var1+@var2 as total_sum from test_table xxx;<br><br>7、用intcd存储ip地址<br>原先错误的认为必ȝbigint才够Q后来发C用int unsignedcdp够了?:)<br><br>8、CREATE TABLE IF NOT EXISTS ... select 语法局?br>管只是对目标表的insert操作Q但?#8216;居然’不允许源表的insert操作Q真是莫名其?br><br>9、利用IF函数快速修改ENUM字段?br>一个例子:<br>update rule set enable = if('0' = enable,'1','0') where xxx;<br>enable cdQenum('0','1') not null default '0'<br><br>10、事务无法嵌?br><br>11、避免长旉的sleepq接造成的连接数出问题<br>讑֮全局变量 wait_timeout ?interactive_timeout 为比较小的|例如 10(s)Q就能每个sleepq接?0s之后如果q没有查询的话自动断开?br><!-- 正文end --><br>(http://www.fanqiang.com)<br></font></font></td> </tr> </tbody> </table> <img src ="http://www.shnenglu.com/true/aggbug/31191.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/true/" target="_blank">true</a> 2007-08-30 10:20 <a href="http://www.shnenglu.com/true/archive/2007/08/30/31191.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql下如何执行sql脚本【{?/title><link>http://www.shnenglu.com/true/archive/2007/07/17/28174.html</link><dc:creator>true</dc:creator><author>true</author><pubDate>Tue, 17 Jul 2007 02:45:00 GMT</pubDate><guid>http://www.shnenglu.com/true/archive/2007/07/17/28174.html</guid><wfw:comment>http://www.shnenglu.com/true/comments/28174.html</wfw:comment><comments>http://www.shnenglu.com/true/archive/2007/07/17/28174.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/true/comments/commentRss/28174.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/true/services/trackbacks/28174.html</trackback:ping><description><![CDATA[<table id=article4ccda6b5010008nw cellSpacing=0 cellPadding=0 border=0> <tbody> <tr> <td align=middle></td> </tr> <tr id=articleBody4ccda6b5010008nw> <td class=aBody> <table class=description cellSpacing=0 cellPadding=0 align=center border=0> <tbody> <tr> <td align=middle> <div id="pxvtf7h" class="sysBr500 text" id=articleText4ccda6b5010008nw align=left twffan="done"> <div twffan="done">  <p><font face=宋体>首要步骤(一般可省略):<br>开启mysql服务(默认是开机时p动运行了):<br>控制面板-->理工具-->服务,在里面找到名UCؓmysql的项,双击可看它的服务状态是启动q是停止,把它设ؓ启动</font></p> <p><font face=宋体>q接mysql:<br>在命令行下输?mysql -h localhost -u root -p回R,然后输入密码卛_;或直接运行mysql自带的连接工?然后输入密码卛_.</font></p> <p><font face=宋体>1.~写sql脚本,假设内容如下:</font></p> <p><font face=宋体>  create database dearabao;<br>  use dearabao;<br>  create table niuzi (name varchar(20));</font></p> <p><font face=宋体>  保存脚本文g,假设我把它保存在F盘的hello world目录?于是该文件的路径?F:\hello world\niuzi.sql</font></p> <p><font face=宋体><br>2.执行sql脚本,可以?U方?<br>  W一U方?<br> 在命令行?未连接数据库),输入 mysql -h localhost -u root -p123456 < F:\hello world\niuzi.sql (注意路径不用加引L!!) 回R卛_.<br>  W二U方?<br> 在命令行?已连接数据库,此时的提C符?mysql> ),输入 source F:\hello world\niuzi.sql (注意路径不用加引L) 或?\. F:\hello world\niuzi.sql (注意路径不用加引L) 回R卛_</font></p> <p><br> </p> </div> </div> </td> </tr> </tbody> </table> <table class=dashed cellSpacing=0 cellPadding=0 align=center border=0> <tbody> <tr> <td></td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <img src ="http://www.shnenglu.com/true/aggbug/28174.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/true/" target="_blank">true</a> 2007-07-17 10:45 <a href="http://www.shnenglu.com/true/archive/2007/07/17/28174.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.ggg13.cn" target="_blank">þùɫAVѹۿ</a>| <a href="http://www.qp8978.cn" target="_blank">2021ھþþƷ</a>| <a href="http://www.wenmis.cn" target="_blank">ŷһþ</a>| <a href="http://www.0352quan.cn" target="_blank">þþƷ99Ӱ</a>| <a href="http://www.wdmdg.cn" target="_blank">޹Ʒþþþþ</a>| <a href="http://www.gaomiren.cn" target="_blank">aaþ</a>| <a href="http://www.jrlxcc.cn" target="_blank">þòþüӰԺwwwձ</a>| <a href="http://www.zhangqiu114.cn" target="_blank">ƷŮþþ</a>| <a href="http://www.sd43.cn" target="_blank">ҹƷþþþþ˳</a>| <a href="http://www.xiaoneiweb.cn" target="_blank">ɫݺݾþۺ</a>| <a href="http://www.znljs.cn" target="_blank">þþƷaĻ</a>| <a href="http://www.30ww.cn" target="_blank">޹þþþþþ</a>| <a href="http://www.dcjx02.cn" target="_blank">޹þþۺ</a>| <a href="http://www.6kk.org.cn" target="_blank">þˬˬƬav</a>| <a href="http://www.rereyy.cn" target="_blank">þùƷƬ</a>| <a href="http://www.showfans.com.cn" target="_blank">91þó</a>| <a href="http://www.z-yh.cn" target="_blank">ŷ츾þþþþò</a>| <a href="http://www.6ht.com.cn" target="_blank">99þ99þþƷƬ </a>| <a href="http://www.michellebranch.cn" target="_blank">ŷ޾þav</a>| <a href="http://www.mycqh.cn" target="_blank">Ʒ԰״̼þþ</a>| <a href="http://www.officene.com.cn" target="_blank">ۺɫۺϾþۺ</a>| <a href="http://www.cn987.cn" target="_blank">66þôýվȸ </a>| <a href="http://www.sanbaotong.cn" target="_blank">91Ʒþþþþ91</a>| <a href="http://www.moisky.com.cn" target="_blank">ٸлþþþ</a>| <a href="http://www.bbctp.cn" target="_blank">99þۺϾƷվ</a>| <a href="http://www.www008tt.cn" target="_blank">þۺϸϾþúݺݺ97ɫ69</a>| <a href="http://www.geiduan.cn" target="_blank">þþ޾Ʒһ</a>| <a href="http://www.bb657.cn" target="_blank">þۺϾɫۺ97_þþ</a>| <a href="http://www.duteng888.com.cn" target="_blank">þþƷþþþùۿ99ˮ</a>| <a href="http://www.whnnmj.cn" target="_blank">ھƷþþþþĻ</a>| <a href="http://www.taoke140.cn" target="_blank">þùѹۿƷ3</a>| <a href="http://www.liru56.cn" target="_blank">þþŷղAV</a>| <a href="http://www.tb57.cn" target="_blank">ƷþþþþþĻ</a>| <a href="http://www.bgbgb.cn" target="_blank">þ޸ۿ</a>| <a href="http://www.it0557.cn" target="_blank">99þþƷѾƷһ</a>| <a href="http://www.qcb8.cn" target="_blank">ɫɫۺϾþҹҹ</a>| <a href="http://www.10000qt.cn" target="_blank">þ99Ʒþþôѧ</a>| <a href="http://www.wjjj8.cn" target="_blank">þþƷһAV</a>| <a href="http://www.0577114.cn" target="_blank">ëƬŷëƬþþ</a>| <a href="http://www.byhyri.cn" target="_blank">ĻѾþ</a>| <a href="http://www.61492.cn" target="_blank">99þþƷһ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>