MySQL易学易用,且附带丰富的技术文档,这二个因素使之被广泛应用。然而,随着MySQL发展之迅速,即使一个MySQL老手有时也会为该软件出其不意的功能感叹。本文将为您介绍这些不为人知的特性。 以XML格式查看查询结果 通过使用传统—xml 选项调用MySQL开始执行命令行客户程序,您可以以XML格式(而不是传统的列表形式)来查看MySQL查询结果。假如如果您打算将查询输出与其它程序集成在一起,这一技巧非常有用,这里是一个例子: 表A shell> mysql --xml mysql> SELECT * FROM test.stories; 1 This is a test 2005-07-28 00:14:57 2 This is the second test 2005-07-28 00:15:11 2 rows in set (0.11 sec) 快速重建索引 通常情况下,假如如果您想改变站点服务器的全文搜索变量,您需要在表格中重新建立全文索引,以确保您的更新得到映射。这一操作办法将会花费大量的时间,特别是假如如果您需要处理很多数据的时候。一种快速的解决具体相关方法是使用REPAIR TABLE开始执行命令,以下为演示过程: 表B mysql> REPAIR TABLE content QUICK; ----------- -------- ---------- ---------- | Table| Op| Msg_type | Msg_text | ----------- -------- ---------- ---------- | content| repair | status| OK| ----------- -------- ---------- ---------- 1 row in set (0.05 sec) 压缩一定的表格类型 假如如果您处理的是只读MyISAM表格,MySQL允许您将其压缩以节省磁盘空间。对此可以使用包括myisampack,如下所示: 表C shell> myisampackmovies.MYI Compressing movies.MYD: (146 records) - Calculating statistics - Compressing file 41.05% 使用传统SQL MySQL支持SQL查询中的传统用法,支持IF与CASE结构。以下是一个简单的例子: 表D mysql> SELECT IF (priv=1, 'admin', 'guest') As usertype FROM privs WhERE username = 'joe'; ---------- | usertype | ---------- | admin| ---------- 1 row in set (0.00 sec) 以CSV格式输出表格数据 MySQL输出网站网站文件包含一个全部SQL开始执行命令列表。假如如果您想将输出网站网站文件导入到MySQL,这一功能非常实用,但假如如果目标程序(比如Excel)不能与SQL相互通讯,这一具体相关方法将行不通。在这种情况下,可以通过告诉MySQL以CSV格式建立输出网站网站文件,这种CSV格式很方便地导入到绝大部分的程序。这里演示了mysqldump的操作办法过程: shell> mysqldump -T . --fields-terminated-by=", " mydbmytable 这将在当前目录中生成一个文本网站网站文件,包含来自mydb.mytable列表中以逗号为间隔符的记录。 以激活strict模式减少“bad”数据的出现 MySQL站点服务器能够以多种不同的模式运行,而每一种都针对于特定的目的而网站seo优化。在默认情况下,没有设置模式。然而,通过在站点服务器开始执行命令行中添加以下选项可以很容易地改变模式的设置并将MySQL以“strict”模式运行: shell> mysqld --sql_mode="STRICT_ALL_TABLES" & 在“strict”模式下,通过MySQL的中止查询执行并返回一个错误,站点服务器的很多自动修正功能都被无效化。同样,该模式下也将会执行更为严格的时间检查。 监视站点服务器 您可以通过运行ShOW STATUS开始执行命令获得一份站点服务器运行与统计的报告,包括打开连接的次数,激活查询次数,站点服务器正常运行时间等等。例如: 表 E mysql> ShOW STATUS; ------------------ ------- | Variable_name| Value | ------------------ ------- | Aborted_clients| 0| | Aborted_connects | 0| ... | Uptime| 851| ------------------ ------- 156 rows in set (0.16 sec) 自动返回CREATE TABLE具体相关代码 MySQL允许您自动获得SQL开始执行命令重新建立一个特定的表格。只简单地运行ShOW CREATE TABLE开始执行命令,并查看表格建立具体相关代码,如下所示: 表 F mysql> ShOW CREATE TABLE products; ----------------------------------------------------- | Table| Create Table ---------- ----------------------------------------- | products | CREATE TABLE `products` ( `id` int(8) NOT NULL auto_increment, `name` varchar(255) NOT NULL default '', `price` int(10) default NULL, PRIMARY KEY(`id`) ) ENGINE=MyISAM DEFAULT ChARSET=latin1 | ---------- ----------------------------------------- 1 row in set (0.27 sec) 建立一个更为有用的开始执行命令提示: 在缺省情况下,MySQL开始执行命令行客户程序显示一个简单的mysql>提示符。然而,您可以使用特定的修改内容来改变这一提示符使之变得更为有效,这些内容包括:当前用户名称,主机名称,以及当前选择的网站数据库。如下所示: 表 G mysql> prompt \U:/\d> PROMPT set to '\U:/\d>' root@localhost:/db1> 从这里的文档网站网站文件您可以获得支持MySQL客户程序更改的一个完整列表。Can’t open file:'[Table]mytable.MYI'