首页  >  文章  >  数据库  >  MySQL数据库中常用的应用技巧有哪些?

MySQL数据库中常用的应用技巧有哪些?

WBOY
WBOY原创
2016-06-07 16:14:091005浏览

以下的文章主要介绍的是MySQL数据库中我们大家都知道的几个较为特殊的实际应用技巧的介绍,如果你对其相关的实际应用技巧感兴趣的话,你就可以对以下的文章点击观看了,望你能有所收获。 以XML格式查看查询结果 通过使用传统xml 选项调用MySQL命令行客户程序

以下的文章主要介绍的是MySQL数据库中我们大家都知道的几个较为特殊的实际应用技巧的介绍,如果你对其相关的实际应用技巧感兴趣的话,你就可以对以下的文章点击观看了,望你能有所收获。

以XML格式查看查询结果

通过使用传统—xml 选项调用MySQL命令行客户程序,你可以以XML格式(而不是传统的列表形式)来查看。

MySQL数据库查询结果

如果你打算将查询输出与其它程序集成在一起,这一技巧非常有用,这里是一个例子:

表A

<ol class="dp-xml">
<li class="alt"><span><span>shell</span><span class="tag">></span><span> mysql --xml  </span></span></li>
<li>
<span>mysql</span><span class="tag">></span><span> SELECT * FROM test.stories;  </span>
</li>
<li class="alt"><span>1  </span></li>
<li><span>This is a test  </span></li>
<li class="alt"><span>2  </span></li>
<li><span>This is the second test  </span></li>
<li class="alt"><span>2rows in set (0.11 sec)  </span></li>
</ol>

快速重建索引

通常情况下,如果你想改变服务器的全文搜索变量,你需要在表格中重新建立全文索引,以确保你的更新得到映射。这一操作将会花费大量的时间,特别是如果你需要处理很多数据的时候。一种快速的解决。

方法是使用REPAIR TABLE命令,以下为演示过程:

表B

<ol class="dp-xml">
<li class="alt"><span><span>mysql</span><span class="tag">></span><span> REPAIR TABLE content QUICK;  </span></span></li>
<li><span>+-----------+--------+----------+----------+  </span></li>
<li class="alt"><span>| Table| Op| Msg_type | Msg_text |  </span></li>
<li><span>+-----------+--------+----------+----------+  </span></li>
<li class="alt"><span>| content| repair | status| OK|  </span></li>
<li><span>+-----------+--------+----------+----------+  </span></li>
<li class="alt"><span>1 row in set (0.05 sec)  </span></li>
</ol>

压缩一定的表格类型

如果你处理的是只读MyISAM表格,MySQL数据库允许你将其压缩以节省磁盘空间。对此可以使用包括myisampack,如下所示:

表C

<ol class="dp-xml">
<li class="alt"><span><span>shell</span><span class="tag">></span><span> myisampackmovies.MYI  </span></span></li>
<li><span>Compressing movies.MYD: (146 records)  </span></li>
<li class="alt"><span>- Calculating statistics  </span></li>
<li><span>- Compressing file  </span></li>
<li class="alt"><span>41.05% </span></li>
</ol>

使用传统SQL

MySQL支持SQL查询中的传统用法,支持IF与CASE结构。以下是一个简单的例子:

表D

<ol class="dp-xml">
<li class="alt"><span><span>mysql</span><span class="tag">></span><span> SELECT IF (</span><span class="attribute">priv</span><span>=</span><span class="attribute-value">1</span><span>, 'admin', 'guest')  </span></span></li>
<li>
<span>As usertype FROM privs WHERE </span><span class="attribute">username</span><span> = </span><span class="attribute-value">'joe'</span><span>;  </span>
</li>
<li class="alt"><span>+----------+  </span></li>
<li><span>| usertype |  </span></li>
<li class="alt"><span>+----------+  </span></li>
<li><span>| admin|  </span></li>
<li class="alt"><span>+----------+  </span></li>
<li><span>1 row in set (0.00 sec) </span></li>
</ol>

以CSV格式输出表格数据

MySQL 输出文件包含一个全部SQL命令列表。如果你想将输出文件导入到MySQL数据库,这一功能非常实用,但如果目标程序(比如Excel)不能与SQL相互通讯,这一方法将行不通。在这种情况下,可以通过告诉MySQL

以CSV格式建立输出文件,这种CSV格式很方便地导入到绝大部分的程序。这里演示了 mysqldump的操作过程:

<ol class="dp-xml">
<li class="alt"><span><span>shell</span><span class="tag">></span><span> mysqldump -T .  </span></span></li>
<li>
<span class="attribute">--fields-terminated-by</span><span>=</span><span class="attribute-value">", "</span><span> mydbmytable  </span>
</li>
</ol>

这将在当前目录中生成一个文本文件,包含来自mydb.mytable列表中以逗号为间隔符的记录。

以激活strict模式减少“bad”数据的出现

MySQL服务器能够以多种不同的模式运行,而每一种都针对于特定的目的而优化。在默认情况下,没有设置模式。然而,通过在服务器命令行中添加以下选项可以很容易地改变模式的设置并将MySQL以“strict”模式运行:

<ol class="dp-xml"><li class="alt"><span><span>shell</span><span class="tag">></span><span> mysqld </span><span class="attribute">--sql_mode</span><span>=</span><span class="attribute-value">"STRICT_ALL_TABLES"</span><span> &  </span></span></li></ol>

在“strict”模式下,通过MySQL的中止查询执行并返回一个错误,服务器的很多自动修正功能都被无效化。同样,该模式下也将会执行更为严格的时间检查。

监视服务器

你可以通过运行SHOW STATUS命令获得一份服务器运行与统计的报告,包括打开连接的次数,激活查询次数,服务器正常运行时间等等。例如:

表E

<ol class="dp-xml">
<li class="alt"><span><span>Emysql</span><span class="tag">></span><span> SHOW STATUS;  </span></span></li>
<li><span>+------------------+-------+  </span></li>
<li class="alt"><span>| Variable_name| Value |  </span></li>
<li><span>+------------------+-------+  </span></li>
<li class="alt"><span>| Aborted_clients| 0|  </span></li>
<li><span>| Aborted_connects | 0|  </span></li>
<li class="alt"><span>...  </span></li>
<li><span>| Uptime| 851|  </span></li>
<li class="alt"><span>+------------------+-------+  </span></li>
<li><span>156 rows in set (0.16 sec)  </span></li>
</ol>

自动返回CREATE TABLE代码

MySQL数据库允许你自动获得SQL命令重新建立一个特定的表格。只简单地运行SHOW CREATE TABLE命令,并查看表格建立代码,如下所示:

表F

<ol class="dp-xml">
<li class="alt"><span><span>mysql</span><span class="tag">></span><span> SHOW CREATE TABLE products;  </span></span></li>
<li><span>---------------------------------------  </span></li>
<li class="alt"><span>| Table| Create Table  </span></li>
<li><span>+----------+---------------------------  </span></li>
<li class="alt"><span>| products | CREATE TABLE `products` (  </span></li>
<li><span>`id` int(8) NOT NULL auto_increment,  </span></li>
<li class="alt"><span>`name` varchar(255) NOT NULL default '',  </span></li>
<li><span>`price` int(10) default NULL,  </span></li>
<li class="alt"><span>PRIMARY KEY(`id`)  </span></li>
<li>
<span>) </span><span class="attribute">ENGINE</span><span>=</span><span class="attribute-value">MyISAM</span><span> DEFAULT </span><span class="attribute">CHARSET</span><span>=</span><span class="attribute-value">latin1</span><span> |  </span>
</li>
<li class="alt"><span>+----------+----------------------------  </span></li>
<li><span>1 row in set (0.27 sec) </span></li>
</ol>

建立一个更为有用的命令提示:

在缺省情况下,MySQL数据库命令行客户程序显示一个简单的mysql>提示符。然而,你可以使用特定的修改内容来改变这一提示符使之变得更为有效,这些内容包括:当前用户名称,主机名称,以及当前选择的数据库。如下所示:

表G

<ol class="dp-xml">
<li class="alt"><span><span>mysql</span><span class="tag">></span><span> prompt \U:/\d</span><span class="tag">></span><span> </span></span></li>
<li>
<span>PROMPT set to '\U:/\d</span><span class="tag">></span><span>'  </span>
</li>
<li class="alt">
<span>root@localhost:/db1</span><span class="tag">></span><span>  </span>
</li>
</ol>

以上的相关内容就是对MySQL数据库鲜为人知的几个特殊技巧的介绍,望你能有所收获。


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn