MySQL十条特殊技巧

时间:2007-09-17 12:33:00 

内容摘要:MySQL易学易用,附带丰富的技术文档,这两个因素使之被广泛应用。然而,随着MySQL发展加快,即使一个MySQL老手有时也会为该软件出其不意的功能感叹。本文将为你介绍这些不为人知的特性。   以XML格式查看查询结果

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

  MySQL查询结果

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

表A

shell> mysql --xml
mysql> Select * FROM test.stories;
1
This is a test
2
This is the second test
2rows 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服务器能够以多种不同的模式运行,而每一种都针对于特定的目的而优化。在默认情况下,没有设置模式。然而,通过在服务器命令行中添加以下选项可以很容易地改变模式的设置并将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,技巧
0
投稿

猜你喜欢

  • Python操作MySQL数据库的示例代码

    2024-01-29 03:55:09
  • iOS开发runloop运行循环机制学习

    2024-01-24 19:03:04
  • python排序算法之希尔排序

    2023-03-03 13:50:48
  • python简单实现图片文字分割

    2023-07-31 23:36:24
  • python中watchdog文件监控与检测上传功能

    2022-03-17 13:46:58
  • pycharm设置注释颜色的方法

    2022-01-22 21:47:46
  • 微信小程序实现上传图片小功能

    2024-04-26 17:11:56
  • FCKeditor 编辑器实战技巧 Ⅰ

    2008-10-08 10:22:00
  • Python简单遍历字典及删除元素的方法

    2021-12-31 08:57:51
  • 使用numpy对数组求平均时如何忽略nan值

    2023-09-19 20:37:24
  • MySQL对JSON类型字段数据进行提取和查询的实现

    2024-01-23 02:48:54
  • 将python文件打包exe独立运行程序方法详解

    2021-07-03 02:26:41
  • Oracle误添加数据文件删除方法

    2009-07-02 12:21:00
  • 发一个数字拼图网页游戏

    2008-10-12 10:02:00
  • JSQL 批量图片切换的实现代码

    2023-09-05 06:47:59
  • JavaScript 颜色梯度和渐变效果

    2009-03-18 11:16:00
  • python机器学习案例教程——K最近邻算法的实现

    2021-12-01 14:36:51
  • Golang交叉编译(跨平台编译)的使用

    2024-05-02 16:26:40
  • Centos7.2 编译安装PHP7.0.2的步骤

    2023-10-08 12:51:29
  • python 爬取壁纸网站的示例

    2022-07-10 13:29:54
  • asp之家 网络编程 m.aspxhome.com