﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-tangbao-文章分类-mysql</title><link>http://www.blogjava.net/tangbao/category/7431.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 03:24:21 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 03:24:21 GMT</pubDate><ttl>60</ttl><item><title>mysql 中show 命令用法详细介绍 </title><link>http://www.blogjava.net/tangbao/articles/30769.html</link><dc:creator>糖包</dc:creator><author>糖包</author><pubDate>Wed, 15 Feb 2006 03:09:00 GMT</pubDate><guid>http://www.blogjava.net/tangbao/articles/30769.html</guid><wfw:comment>http://www.blogjava.net/tangbao/comments/30769.html</wfw:comment><comments>http://www.blogjava.net/tangbao/articles/30769.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tangbao/comments/commentRss/30769.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tangbao/services/trackbacks/30769.html</trackback:ping><description><![CDATA[<TABLE width="100%" border=0>
<TBODY>
<TR>
<TD class=shadow2 align=middle width="100%">作者:自由的猪 &nbsp;来源: &nbsp;类别:数据库技术 &nbsp;日期:2005-11-02 &nbsp;今日/总浏览: 1/810 </TD></TR>
<TR>
<TD align=middle width="100%">
<TABLE width="95%" border=0>
<TBODY>
<TR>
<TD vAlign=top width="100%" height=200><BR>
<P style="LINE-HEIGHT: 130%">以下所有命令都是在进入mysql监控器中执行的： <BR><BR>&nbsp;&nbsp;a. show tables或show tables from database_name; // 显示当前<B><A href="http://www.sogou.com/websearch/corp/search.jsp?query=数据库&amp;searchtype=1&amp;pid=leftworld&amp;cpc=SOGOU" target=_blank><FONT color=red>数据库</FONT></A></B>中所有表的名称 <BR><BR>&nbsp;&nbsp;b. show databases; // 显示mysql中所有<B><A href="http://www.sogou.com/websearch/corp/search.jsp?query=数据库&amp;searchtype=1&amp;pid=leftworld&amp;cpc=SOGOU" target=_blank><FONT color=red>数据库</FONT></A></B>的名称 <BR><BR>&nbsp;&nbsp;c. show columns from table_name from database_name; 或show columns from database_name.table_name;&nbsp;&nbsp;// 显示表中列名称 <BR><BR>&nbsp;&nbsp;d. show grants for user_name;&nbsp;&nbsp;//&nbsp;&nbsp;显示一个用户的权限，显示结果类似于grant 命令 <BR><BR>&nbsp;&nbsp;e. show index from table_name;&nbsp;&nbsp;// 显示表的索引 <BR><BR>&nbsp;&nbsp;f. show status;&nbsp;&nbsp;// 显示一些系统特定资源的信息，例如，正在运行的线程数量 <BR><BR>&nbsp;&nbsp;g. show variables; // 显示系统变量的名称和值 <BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp;h. show&nbsp;&nbsp;processlist; // 显示系统中正在运行的所有进程，也就是当前正在执行的查询。大多数用户可以查看 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 他们自己的进程，但是如果他们拥有process权限，就可以查看所有人的进程，包括<B><A href="http://www.sogou.com/websearch/corp/search.jsp?query=密码&amp;searchtype=1&amp;pid=leftworld&amp;cpc=SOGOU" target=_blank><FONT color=red>密码</FONT></A></B>。 <BR><BR>&nbsp;&nbsp;i. show table status; // 显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间 <BR><BR>&nbsp;&nbsp;j. show privileges;&nbsp;&nbsp;// 显示服务器所支持的不同权限 <BR><BR>&nbsp;&nbsp;k. show create database database_name; // 显示create database 语句是否能够创建指定的<B><A href="http://www.sogou.com/websearch/corp/search.jsp?query=数据库&amp;searchtype=1&amp;pid=leftworld&amp;cpc=SOGOU" target=_blank><FONT color=red>数据库</FONT></A></B> <BR><BR>&nbsp;&nbsp;l. show create table table_name; // 显示create database 语句是否能够创建指定的<B><A href="http://www.sogou.com/websearch/corp/search.jsp?query=数据库&amp;searchtype=1&amp;pid=leftworld&amp;cpc=SOGOU" target=_blank><FONT color=red>数据库</FONT></A></B> <BR><BR>&nbsp;&nbsp;m. show engies;&nbsp;&nbsp;// 显示安装以后可用的存储引擎和默认引擎。 <BR><BR>&nbsp;&nbsp;n. show innodb status; // 显示innoDB存储引擎的状态 <BR><BR>&nbsp;&nbsp;o. show logs; // 显示BDB存储引擎的日志 <BR><BR>&nbsp;&nbsp;p. show warnings; // 显示最后一个执行的语句所产生的错误、警告和通知 <BR><BR>&nbsp;&nbsp;q. show errors; // 只显示最后一个执行语句所产生的错误 <BR></P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><img src ="http://www.blogjava.net/tangbao/aggbug/30769.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tangbao/" target="_blank">糖包</a> 2006-02-15 11:09 <a href="http://www.blogjava.net/tangbao/articles/30769.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MySQL鲜为人知的10条技巧</title><link>http://www.blogjava.net/tangbao/articles/30768.html</link><dc:creator>糖包</dc:creator><author>糖包</author><pubDate>Wed, 15 Feb 2006 03:08:00 GMT</pubDate><guid>http://www.blogjava.net/tangbao/articles/30768.html</guid><wfw:comment>http://www.blogjava.net/tangbao/comments/30768.html</wfw:comment><comments>http://www.blogjava.net/tangbao/articles/30768.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tangbao/comments/commentRss/30768.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tangbao/services/trackbacks/30768.html</trackback:ping><description><![CDATA[<P>作者： Techrepublic.com.com <BR>2006-02-06 04:58 PM </P>
<P>本文为你介绍MySQL中十条鲜为人知的技巧。</P>
<P><BR>&nbsp; <BR>MySQL易学易用，且附带丰富的技术文档，这二个因素使之被广泛应用。然而，随着MySQL发展之迅速，即使一个MySQL老手有时也会为该软件出其不意的功能感叹。本文将为你介绍这些不为人知的特性。</P>
<P>以XML格式查看查询结果</P>
<P>通过使用传统—xml 选项调用MySQL命令行客户程序，你可以以XML格式(而不是传统的列表形式)来查看MySQL查询结果。如果你打算将查询输出与其它程序集成在一起，这一技巧非常有用，这里是一个例子：</P>
<P>表A</P>
<P>shell&gt; mysql --xml</P>
<P>mysql&gt; SELECT * FROM test.stories;<BR><?xml version="1.0"?></P>
<P><RESULTSET statement="SELECT * FROM test.stories"><BR><ROW><BR><ID>1</ID><BR><HEADLINE>This is a test</HEADLINE><BR><TSTAMP>2005-07-28 00:14:57</TSTAMP><BR></ROW></P>
<P><ROW><BR><ID>2</ID><BR><HEADLINE>This is the second test</HEADLINE><BR><TSTAMP>2005-07-28 00:15:11</TSTAMP><BR></ROW><BR></RESULTSET><BR>2 rows in set (0.11 sec)</P>
<P>快速重建索引</P>
<P>通常情况下，如果你想改变服务器的全文搜索变量，你需要在表格中重新建立全文索引，以确保你的更新得到映射。这一操作将会花费大量的时间，特别是如果你需要处理很多数据的时候。一种快速的解决方法是使用REPAIR TABLE命令，以下为演示过程：</P>
<P>表B</P>
<P>mysql&gt; REPAIR TABLE content QUICK;<BR>+-----------+--------+----------+----------+<BR>| Table| Op| Msg_type | Msg_text |<BR>+-----------+--------+----------+----------+<BR>| content| repair | status| OK|<BR>+-----------+--------+----------+----------+<BR>1 row in set (0.05 sec)</P>
<P>压缩一定的表格类型</P>
<P>如果你处理的是只读MyISAM表格，MySQL允许你将其压缩以节省磁盘空间。对此可以使用包括myisampack，如下所示：</P>
<P>表C</P>
<P>shell&gt; myisampackmovies.MYI<BR>Compressing movies.MYD: (146 records)<BR>- Calculating statistics<BR>- Compressing file<BR>41.05%</P>
<P>使用传统SQL</P>
<P>MySQL支持SQL查询中的传统用法，支持IF与CASE结构。以下是一个简单的例子：</P>
<P>表D</P>
<P>mysql&gt; SELECT IF (priv=1, 'admin', 'guest') As usertype FROM privs WHERE username = 'joe';<BR>+----------+<BR>| usertype |<BR>+----------+<BR>| admin|<BR>+----------+<BR>1 row in set (0.00 sec)</P>
<P>以CSV格式输出表格数据</P>
<P>MySQL输出文件包含一个全部SQL命令列表。如果你想将输出文件导入到MySQL，这一功能非常实用，但如果目标程序(比如Excel)不能与SQL相互通讯，这一方法将行不通。在这种情况下，可以通过告诉MySQL以CSV格式建立输出文件，这种CSV格式很方便地导入到绝大部分的程序。这里演示了mysqldump的操作过程：</P>
<P>shell&gt; mysqldump -T . --fields-terminated-by=", " mydbmytable</P>
<P>这将在当前目录中生成一个文本文件，包含来自mydb.mytable列表中以逗号为间隔符的记录。</P>
<P>以激活strict模式减少“bad”数据的出现</P>
<P>MySQL服务器能够以多种不同的模式运行，而每一种都针对于特定的目的而优化。在默认情况下，没有设置模式。然而，通过在服务器命令行中添加以下选项可以很容易地改变模式的设置并将MySQL以“strict”模式运行：</P>
<P>shell&gt; mysqld --sql_mode="STRICT_ALL_TABLES" &amp;</P>
<P>在“strict”模式下，通过MySQL的中止查询执行并返回一个错误，服务器的很多自动修正功能都被无效化。同样，该模式下也将会执行更为严格的时间检查。</P>
<P>监视服务器</P>
<P>你可以通过运行SHOW STATUS命令获得一份服务器运行与统计的报告，包括打开连接的次数，激活查询次数，服务器正常运行时间等等。例如：</P>
<P>表 E</P>
<P>mysql&gt; SHOW STATUS;<BR>+------------------+-------+<BR>| Variable_name| Value |<BR>+------------------+-------+<BR>| Aborted_clients| 0|<BR>| Aborted_connects | 0|<BR>...<BR>| Uptime| 851|<BR>+------------------+-------+<BR>156 rows in set (0.16 sec)</P>
<P>自动返回CREATE TABLE代码</P>
<P>MySQL允许你自动获得SQL命令重新建立一个特定的表格。只简单地运行SHOW CREATE TABLE命令，并查看表格建立代码，如下所示：</P>
<P>表 F</P>
<P>mysql&gt; SHOW CREATE TABLE products;<BR>-----------------------------------------------------<BR>| Table| Create Table<BR>+----------+-----------------------------------------<BR>| products | CREATE TABLE `products` (<BR>`id` int(8) NOT NULL auto_increment,<BR>`name` varchar(255) NOT NULL default '',<BR>`price` int(10) default NULL,<BR>PRIMARY KEY(`id`)<BR>) ENGINE=MyISAM DEFAULT CHARSET=latin1 |<BR>+----------+-----------------------------------------<BR>1 row in set (0.27 sec)</P>
<P>建立一个更为有用的命令提示：</P>
<P>在缺省情况下，MySQL命令行客户程序显示一个简单的mysql&gt;提示符。然而，你可以使用特定的修改内容来改变这一提示符使之变得更为有效，这些内容包括：当前用户名称，主机名称，以及当前选择的数据库。如下所示：</P>
<P>表 G</P>
<P>mysql&gt; prompt \U:/\d&gt;<BR>PROMPT set to '\U:/\d&gt;'<BR><A href="mailto:root@localhost:/db1">root@localhost:/db1</A>&gt;</P>
<P>从<A href="http://dev.mysql.com/doc/mysql/en/mysql-commands.html" target=_blank>这里的文档文件</A>你可以获得支持MySQL客户程序更改的一个完整列表。<BR>&nbsp;</P><img src ="http://www.blogjava.net/tangbao/aggbug/30768.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tangbao/" target="_blank">糖包</a> 2006-02-15 11:08 <a href="http://www.blogjava.net/tangbao/articles/30768.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>