当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
计算机四级考试辅导:MySQL数据库中鲜为人知的技巧
发布时间:2010/3/13 10:41:01 来源:城市学习网 编辑:MOON
  MySQL易学易用,且附带丰富的技术文档,这二个因素使之被广泛应用。然而,随着MySQL发展之迅速,即使一个MySQL老手有时也会为该软件出其不意的功能感叹。本文将为你介绍这些不为人知的特性。以XML格式查看查询结 ...
  MySQL易学易用,且附带丰富的技术文档,这二个因素使之被广泛应用。然而,随着MySQL发展之迅速,即使一个MySQL老手有时也会为该软件出其不意的功能感叹。本文将为你介绍这些不为人知的特性。
  以XML格式查看查询结果
  通过使用传统—xml 选项调用MySQL命令行客户程序,你可以以XML格式来查看MySQL查询结果。如果你打算将查询输出与其它程序集成在一起,这一技巧非常有用,这里是一个例子:
  表A
  shell mysql --xml
  mysql SELECTFROM 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
  快速重建索引
  通常情况下,如果你想改变服务器的全文搜索变量,你需要在表格中重新建立全文索引,以确保你的更新得到映射。这一操作将会花费大量的时间,特别是如果你需要处理很多数据的时候。一种快速的解决方法是使用REPAIR TABLE命令,以下为演示过程:
  表B
  mysql REPAIR TABLE content QUICK;
  +-----------+--------+----------+----------+
  Table Op Msg_type Msg_text
  +-----------+--------+----------+----------+
  content repair status OK
  +-----------+--------+----------+----------+
  1 row in set
  压缩一定的表格类型
  如果你处理的是只读MyISAM表格,MySQL允许你将其压缩以节省磁盘空间。对此可以使用包括myisampack,如下所示:
  表C
  shell myisampackmovies.MYI
  Compressing movies.MYD:
  - Calculating statistics
  - Compressing file
  41.05%
  使用传统SQL
  MySQL支持SQL查询中的传统用法,支持IF与CASE结构。以下是一个简单的例子:
  表D
  mysql SELECT IF As usertype FROM privs WHERE username = ‘joe‘;
  +----------+
  usertype
  +----------+
  admin
  +----------+
  1 row in set
  以CSV格式输出表格数据
  MySQL输出文件包含一个全部SQL命令列表。如果你想将输出文件导入到MySQL,这一功能非常实用,但如果目标程序不能与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
  自动返回CREATE TABLE代码
  MySQL允许你自动获得SQL命令重新建立一个特定的表格。只简单地运行SHOW CREATE TABLE命令,并查看表格建立代码,如下所示:
  表 F
  mysql SHOW CREATE TABLE products;
  -----------------------------------------------------
  Table Create Table
  +----------+-----------------------------------------
  products CREATE TABLE `products` NOT NULL auto_increment,
  `name` varchar NOT NULL default ‘‘,
  `price` int default NULL,
  PRIMARY KEY
  ) ENGINE=MyISAM DEFAULT CHARSET=latin1
  +----------+-----------------------------------------
  1 row in set
  建立一个更为有用的命令提示:
  在缺省情况下,MySQL命令行客户程序显示一个简单的mysql提示符。然而,你可以使用特定的修改内容来改变这一提示符使之变得更为有效,这些内容包括:当前用户名称,主机名称,以及当前选择的数据库。如下所示:
  表 G
  mysql prompt “U:/“d
  PROMPT set to ‘“U:/“d‘
  root@localhost:/db1
  从这里的文档文件你可以获得支持MySQL客户程序更改的一个完整列表。
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved