MySQL易學易用之MYSQL不為人知的特征。本站提示廣大學習愛好者:(MySQL易學易用之MYSQL不為人知的特征)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL易學易用之MYSQL不為人知的特征正文
本文將為你引見這些不為人知的特征。
以XML格局檢查查詢成果
經由過程應用傳統—xml 選項挪用MySQL敕令行客戶法式,你可以以XML格局(而不是傳統的列表情勢)來檢查MySQL查詢成果。假如你盤算將查詢輸入與其它法式集成在一路,這一技能異常有效,這裡是一個例子:
表A
shell> mysql --xml
mysql> SELECT * FROM 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 (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客戶法式更改的一個完全列表。