tangbao

          導航

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          url

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          MySQL鮮為人知的10條技巧

          作者: Techrepublic.com.com
          2006-02-06 04:58 PM

          本文為你介紹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客戶程序更改的一個完整列表。
           



          posted on 2006-02-15 11:08 糖包 閱讀(185) 評論(0)  編輯  收藏 所屬分類: mysql


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 三河市| 卢湾区| 白城市| 南京市| 孟连| 公安县| 泾源县| 宁阳县| 长葛市| 师宗县| 潜江市| 德阳市| 万盛区| 天全县| 南安市| 昌乐县| 呼图壁县| 乌鲁木齐县| 西吉县| 青田县| 沈阳市| 清丰县| 平谷区| 砀山县| 康平县| 鹿泉市| 阳谷县| 汽车| 灵寿县| 旌德县| 丹凤县| 东山县| 师宗县| 农安县| 汉寿县| 亳州市| 娱乐| 疏勒县| 元阳县| 安新县| 永登县|