MYSQL网站制作之MySQL易学易用:MYSQL不为人知的特征
DBaaS向客户提供了许多与其他云服务相类似的优势:一个灵活的、可扩展的MySQL学习教程、按需服务的平台,它以自助服务和便捷管理为导向,可以对环境中的资源进行调配。</p>MySQL易学易用,且附带丰厚的手艺文档,这二个要素使之被普遍使用。但是,跟着MySQL开展之敏捷,即便一个MySQL内行偶然也会为该软件出乎意料的功效叹息。本文将为你先容这些不为人知的特征。以XML格局检察查询了局
经由过程利用传统—xml选项挪用MySQL命令行客户程序,你能够以XML格局(而不是传统的列表情势)来检察MySQL查询了局。假如你盘算将查询输入与别的程序集成在一同,这一技能十分有效,这里是一个例子:
表A
shell>mysql--xml
mysql>SELECT*FROMtest.stories;
1
Thisisatest
2005-07-2800:14:57
2
Thisisthesecondtest
2005-07-2800:15:11
2rowsinset(0.11sec)
疾速重修索引
一般情形下,假如你想改动服务器的全文搜刮变量,你必要在表格中从头创建全文索引,以确保你的更新失掉映照。这一操纵将会消费大批的工夫,出格是假如你必要处置良多数据的时分。一种疾速的办理办法是利用REPAIRTABLE命令,以下为演示历程:
表B
mysql>REPAIRTABLEcontentQUICK;
+-----------+--------+----------+----------+
TableOpMsg_typeMsg_text
+-----------+--------+----------+----------+
contentrepairstatusOK
+-----------+--------+----------+----------+
1rowinset(0.05sec)
紧缩必定的表格范例
假如你处置的是只读MyISAM表格,MySQL同意你将其紧缩以节俭磁盘空间。对此可使用包含myisampack,以下所示:
表C
shell>myisampackmovies.MYI
Compressingmovies.MYD:(146records)
-Calculatingstatistics
-Compressingfile
41.05%
利用传统SQL
MySQL撑持SQL查询中的传统用法,撑持IF与CASE布局。以下是一个复杂的例子:
表D
mysql>SELECTIF(priv=1,admin,guest)AsusertypeFROMprivsWHEREusername=joe;
+----------+
usertype
+----------+
admin
+----------+
1rowinset(0.00sec)
以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的中断查询实行并前往一个毛病,服务器的良多主动修改功效都被有效化。一样,该形式下也将会实行更加严厉的工夫反省。
监督服务器
你能够经由过程运转SHOWSTATUS命令取得一份服务器运转与统计的呈报,包含翻开毗连的次数,激活查询次数,服务器一般运转工夫等等。比方:
表E
mysql>SHOWSTATUS;
+------------------+-------+
Variable_nameValue
+------------------+-------+
Aborted_clients0
Aborted_connects0
...
Uptime851
+------------------+-------+
156rowsinset(0.16sec)
主动前往CREATETABLE代码
MySQL同意你主动取得SQL命令从头创建一个特定的表格。只复杂地运转SHOWCREATETABLE命令,并检察表格创建代码,以下所示:
表F
mysql>SHOWCREATETABLEproducts;
-----------------------------------------------------
TableCreateTable
+----------+-----------------------------------------
productsCREATETABLE`products`(
`id`int(8)NOTNULLauto_increment,
`name`varchar(255)NOTNULLdefault,
`price`int(10)defaultNULL,
PRIMARYKEY(`id`)
)ENGINE=MyISAMDEFAULTCHARSET=latin1
+----------+-----------------------------------------
1rowinset(0.27sec)
创建一个更加有效的命令提醒:
在缺省情形下,MySQL命令行客户程序显现一个复杂的mysql>提醒符。但是,你可使用特定的修正内容来改动这一提醒符使之变得更加无效,这些内容包含:以后用户称号,主机称号,和以后选择的数据库。以下所示:
表G
mysql>promptU:/d>
PROMPTsettoU:/d>
root@localhost:/db1>
从这里的文档文件你能够取得撑持MySQL客户程序变动的一个完全列表。通过支付一定费用,客户可以得到优先的24/7支持,访问内容丰富的在线知识库和联系一个专门的技术负责经理。 数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。 对递归类的树遍历很有帮助。个人感觉这个真是太棒了!阅读清晰,非常有时代感。 如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。 如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录. 我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力 多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。 索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。
页:
[1]