热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL数据库中鲜为人知的技巧_MySQL

MySQL易学易用,且附带丰富的技术文档,这二个因素使之被广泛应用。然而,随着MySQL发展之迅速,即使一个MySQL老手有时也会为该软件出其不意的功能感叹。本文将为你介绍这些不为人知的特性。nfeqhh-pWshCV以XML格式查看查询结果!)ava~r]XFU通过使用传统xml选
mysql/>MySQL易学易用,且附带丰富的技术文档,这二个因素使之被广泛应用。然而,随着mysql/>MySQL发展之迅速,即使一个mysql/>MySQL老手有时也会为该软件出其不意的功能感叹。本文将为你介绍这些不为人知的特性。 nf/eqhh-
pW<shCV
以XML格式查看查询结果 !)ava \
~r]XFU
通过使用传统—xml 选项调用MySQL命令行客户程序,你可以以XML格式(而不是传统的列表形式)来查看MySQL查询结果。如果你打算将查询输出与其它程序集成在一起,这一技巧非常有用,这里是一个例子: $t_pCEw\ e
+LZ| hqI
表A |$;jP<%
SQlEb)tr
shell> mysql --xml VSW~YP9
@.JD_m N
mysql> SELECT * FROM test.stories; sdYD/Y
>XUTBJX4
!/vK Y
EPG[e7
\nSVw!$k
1 wIl}
This is a test gr']aUi09
2005-07-28 00:14:57 7DBWyUV
S~Eqn 0\!
!Z8Kb3MxGF
S= ev" yN
2 mZsdvBv:'
This is the second test "vAnQf
2005-07-28 00:15:11 iO[sQP]
{TNT.
t @-DS.ZR
2 rows in set (0.11 sec) !8cN8tb
2dQ! y<
快速重建索引 T~5wULw'
lt.BWF
通常情况下,如果你想改变服务器的全文搜索变量,你需要在表格中重新建立全文索引,以确保你的更新得到映射。这一操作将会花费大量的时间,特别是如果你需要处理很多数据的时候。一种快速的解决方法是使用REPAIR TABLE命令,以下为演示过程: 1#\ X]-
p:JI $L;)
表B $ l{ N8LD
Q r 
mysql> REPAIR TABLE content QUICK; &\UYYJxyz
+-----------+--------+----------+----------+ H Lit@g
| Table| Op| Msg_type | Msg_text | Ki}1To
+-----------+--------+----------+----------+ dK~ 1@
| content| repair | status| OK| -Wv c$SX
+-----------+--------+----------+----------+ $CUCXz[>n
1 row in set (0.05 sec) D~!au:\$
c%uz6 l
压缩一定的表格类型 L5NGMF{zNL
_ }]\ i-
如果你处理的是只读MyISAM表格,MySQL允许你将其压缩以节省磁盘空间。对此可以使用包括myisampack,如下所示: @=R dG
%[z.zY2=
表C d*-2+ D 5&
ikK\9gB)(
shell> myisampackmovies.MYI k"* \s .C
Compressing movies.MYD: (146 records) )Xbl<;+x
- Calculating statistics vP5R"4?
- Compressing file caa 3MA>
41.05% - ?0qz[4
t({t:|h
使用传统SQL a,G{OtBB
$_F j
MySQL支持SQL查询中的传统用法,支持IF与CASE结构。以下是一个简单的例子: @b`@7L}Z
\J-Tw^E
表D O8T2(P$Rc
JRm&Oc9v
mysql> SELECT IF (priv=1, 'admin', 'guest') As usertype FROM privs WHERE username = 'joe'; #N3blF%v
+----------+ e&Nm%#9Z;
| usertype | u[kdlZnqyc
+----------+ Bk!]Tw s|1
| admin| YIUj7H
+----------+ Cvd^|^&3+!
1 row in set (0.00 sec) 8nmS;o
hNBHeK
以CSV格式输出表格数据 uf@!CLF
4`K
MySQL输出文件包含一个全部SQL命令列表。如果你想将输出文件导入到MySQL,这一功能非常实用,但如果目标程序(比如Excel)不能与SQL相互通讯,这一方法将行不通。在这种情况下,可以通过告诉MySQL以CSV格式建立输出文件,这种CSV格式很方便地导入到绝大部分的程序。这里演示了mysqldump的操作过程: MTiNuo`M
{6VgfC\
shell> mysqldump -T . --fields-terminated-by=", " mydbmytable UD@6D>Q~"u
L{,7Wb+[%)
这将在当前目录中生成一个文本文件,包含来自mydb.mytable列表中以逗号为间隔符的记录。 b@oLlb4-w
cHg5 ]dK-
以激活strict模式减少“bad”数据的出现 DA5WPDj-
a]BbGS
MySQL服务器能够以多种不同的模式运行,而每一种都针对于特定的目的而优化。在默认情况下,没有设置模式。然而,通过在服务器命令行中添加以下选项可以很容易地改变模式的设置并将MySQL以“strict”模式运行: 5mM#W:r
@ZP%T_(
shell> mysqld --sql_mode="STRICT_ALL_TABLES" & !
JZ&DefN
在“strict”模式下,通过MySQL的中止查询执行并返回一个错误,服务器的很多自动修正功能都被无效化。同样,该模式下也将会执行更为严格的时间检查。 ~KtB",$
8J+x u;
监视服务器 g]FaGf6us
o{Y?k=G
你可以通过运行SHOW STATUS命令获得一份服务器运行与统计的报告,包括打开连接的次数,激活查询次数,服务器正常运行时间等等。例如: [<'V}oUp@#
8o98E6
表 E vH7'-yhw
[ =cecFV
mysql> SHOW STATUS; <"BHu.
+------------------+-------+ { J b}14 H
| Variable_name| Value | lQ"}~SQu)
+------------------+-------+ (O*o;,7C
| Aborted_clients| 0| K@$5@4'mP
| Aborted_connects | 0| 0]LOSb.<0
... Y\!H.[vb;O
| Uptime| 851| 5ulNz
+------------------+-------+ Es; o$FN
156 rows in set (0.16 sec) 830 v\H
4:Lj!nn(65
自动返回CREATE TABLE代码 ) 6\vY
Dhn@]++
MySQL允许你自动获得SQL命令重新建立一个特定的表格。只简单地运行SHOW CREATE TABLE命令,并查看表格建立代码,如下所示: "a4|g,%
kokH
表 F U-Dx>^g\4
EqMl20t
mysql> SHOW CREATE TABLE products; uzD8 J
----------------------------------------------------- FJmedK23V
| Table| Create Table 6GAV.'
+----------+----------------------------------------- ^W8syW= 
| products | CREATE TABLE `products` ( BW^$H#|\
`id` int(8) NOT NULL auto_increment, Pr[Zcs1d
`name` varchar(255) NOT NULL default '', Fgzth
`price` int(10) default NULL, JK 5s2
PRIMARY KEY(`id`) In?rn%h
) ENGINE=MyISAM DEFAULT CHARSET=latin1 | ;*1Ru38
+----------+----------------------------------------- lX2OsIU
1 row in set (0.27 sec) ]|Q&Yh Z
{\ {iZ
建立一个更为有用的命令提示: |L9{t !|
a+(3=8m
在缺省情况下,MySQL命令行客户程序显示一个简单的mysql>提示符。然而,你可以使用特定的修改内容来改变这一提示符使之变得更为有效,这些内容包括:当前用户名称,主机名称,以及当前选择的数据库。如下所示: }mV?GKCH46
-zW~)==x
表 G goq,Q$\
+)Hq-jPR;
mysql> prompt \U:/\d> A:FgjuR
PROMPT set to '\U:/\d>' F7s/ZL
root@localhost:/db1> NaxIg)9(
Aq'f6,.J
从这里的文档文件你可以获得支持MySQL客户程序更改的一个完整列表。
推荐阅读
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文介绍了某点评网的搜索策略,包括名称和地址的匹配策略,模糊匹配的方法以及不同口音和拼音的近似发音。同时提供了一些例子来说明这些策略的应用。 ... [详细]
author-avatar
nora抹抹茶I
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有