教你幾個(gè)MySQL鮮為人知特殊技巧_Mssql數(shù)據(jù)庫(kù)教程
推薦:三個(gè)影響SQL Server性能的關(guān)鍵點(diǎn)一、邏輯數(shù)據(jù)庫(kù)和表的設(shè)計(jì) 數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)、包括表與表之間的關(guān)系是優(yōu)化關(guān)系型數(shù)據(jù)庫(kù)性能的核心。一個(gè)好的邏輯數(shù)據(jù)庫(kù)設(shè)計(jì)可以為優(yōu)化數(shù)據(jù)庫(kù)和應(yīng)用程序打下良好的基
以XML格式查看查詢結(jié)果
通過(guò)使用傳統(tǒng)—xml 選項(xiàng)調(diào)用MySQL命令行客戶程序,你可以以XML格式(而不是傳統(tǒng)的列表形式)來(lái)查看。
MySQL查詢結(jié)果
如果你打算將查詢輸出與其它程序集成在一起,這一技巧非常有用,這里是一個(gè)例子:
表A
shell> mysql --xml mysql> SELECT * FROM test.stories;1This is a test2This is the second test2rows in set (0.11 sec)
快速重建索引
通常情況下,如果你想改變服務(wù)器的全文搜索變量,你需要在表格中重新建立全文索引,以確保你的更新得到映射。這一操作將會(huì)花費(fèi)大量的時(shí)間,特別是如果你需要處理很多數(shù)據(jù)的時(shí)候。一種快速的解決。
方法是使用REPAIR TABLE命令,以下為演示過(guò)程:
表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允許你將其壓縮以節(jié)省磁盤空間。對(duì)此可以使用包括myisampack,如下所示:
表C
shell> myisampackmovies.MYI Compressing movies.MYD: (146 records)- Calculating statistics- Compressing file41.05%
使用傳統(tǒng)SQL
MySQL支持SQL查詢中的傳統(tǒng)用法,支持IF與CASE結(jié)構(gòu)。以下是一個(gè)簡(jiǎn)單的例子:
表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格式輸出表格數(shù)據(jù)
MySQL 輸出文件包含一個(gè)全部SQL命令列表。如果你想將輸出文件導(dǎo)入到MySQL,這一功能非常實(shí)用,但如果目標(biāo)程序(比如Excel)不能與SQL相互通訊,這一方法將行不通。在這種情況下,可以通過(guò)告訴MySQL
以CSV格式建立輸出文件,這種CSV格式很方便地導(dǎo)入到絕大部分的程序。這里演示了 mysqldump的操作過(guò)程:
shell> mysqldump -T .--fields-terminated-by=", " mydbmytable
這將在當(dāng)前目錄中生成一個(gè)文本文件,包含來(lái)自mydb.mytable列表中以逗號(hào)為間隔符的記錄。
以激活strict模式減少“bad”數(shù)據(jù)的出現(xiàn)
MySQL服務(wù)器能夠以多種不同的模式運(yùn)行,而每一種都針對(duì)于特定的目的而優(yōu)化。在默認(rèn)情況下,沒有設(shè)置模式。然而,通過(guò)在服務(wù)器命令行中添加以下選項(xiàng)可以很容易地改變模式的設(shè)置并將MySQL以“strict”模式運(yùn)行:
shell> mysqld --sql_mode="STRICT_ALL_TABLES" &
在“strict”模式下,通過(guò)MySQL的中止查詢執(zhí)行并返回一個(gè)錯(cuò)誤,服務(wù)器的很多自動(dòng)修正功能都被無(wú)效化。同樣,該模式下也將會(huì)執(zhí)行更為嚴(yán)格的時(shí)間檢查。
監(jiān)視服務(wù)器
你可以通過(guò)運(yùn)行SHOW STATUS命令獲得一份服務(wù)器運(yùn)行與統(tǒng)計(jì)的報(bào)告,包括打開連接的次數(shù),激活查詢次數(shù),服務(wù)器正常運(yùn)行時(shí)間等等。例如:
表E
Emysql> SHOW STATUS; ------------------ ------- | Variable_name| Value | ------------------ ------- | Aborted_clients| 0|| Aborted_connects | 0|...| Uptime| 851| ------------------ ------- 156 rows in set (0.16 sec)
自動(dòng)返回CREATE TABLE代碼
MySQL允許你自動(dòng)獲得SQL命令重新建立一個(gè)特定的表格。只簡(jiǎn)單地運(yùn)行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)
建立一個(gè)更為有用的命令提示:
在缺省情況下,MySQL命令行客戶程序顯示一個(gè)簡(jiǎn)單的mysql>提示符。然而,你可以使用特定的修改內(nèi)容來(lái)改變這一提示符使之變得更為有效,這些內(nèi)容包括:當(dāng)前用戶名稱,主機(jī)名稱,以及當(dāng)前選擇的數(shù)據(jù)庫(kù)。如下所示:
表G
mysql> prompt \U:/\d> PROMPT set to '\U:/\d>'root@localhost:/db1>
分享:怎樣從客戶端提升SQL Server數(shù)據(jù)庫(kù)性能第一:編寫限制搜索范圍的查詢語(yǔ)句。 眾所周知,在數(shù)據(jù)庫(kù)查詢的時(shí)候返回記錄的多少直接關(guān)系到查詢的效率。所以,在客戶端通過(guò)一定的條件語(yǔ)句,限制搜索的范圍,往往可以大幅度的提高查詢的效率。 如用戶在客戶端查詢數(shù)據(jù)庫(kù)的時(shí)候,在查詢語(yǔ)句中,加入TOP語(yǔ)句
- sql 語(yǔ)句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個(gè)方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無(wú)法查看數(shù)據(jù)庫(kù),提示 無(wú)法為該請(qǐng)求檢索數(shù)據(jù) 錯(cuò)誤916解決方法
- SQLServer日志清空語(yǔ)句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲(chǔ)過(guò)程參數(shù)的用法實(shí)例詳解
Mssql數(shù)據(jù)庫(kù)教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫(kù)教程推薦
- 精華:精妙SQL語(yǔ)句
- sql里將重復(fù)行數(shù)據(jù)合并為一行數(shù)據(jù)使用逗號(hào)進(jìn)行分隔
- sql to sqlalchemy 轉(zhuǎn)換的小例子
- 淺析管理SQL Server數(shù)據(jù)庫(kù)和應(yīng)用元數(shù)據(jù)
- SQL SERVER 2008 中三種分頁(yè)方法與比較
- 怎樣將索引碎片數(shù)量降至最低
- 解決SQLServer2000因登陸失敗無(wú)法啟動(dòng)服務(wù)的方法
- 淺談在SQL Server2005中進(jìn)行錯(cuò)誤捕捉
- 揭秘SQL Server服務(wù)器內(nèi)存管理問(wèn)題
- Sql Server中的日期與時(shí)間函數(shù)
猜你也喜歡看這些
- Windows環(huán)境下重置mysql密碼操作命令
- 使用MySQL Slow Log來(lái)解決MySQL CPU占用高的問(wèn)題
- MySQL前綴索引導(dǎo)致的慢查詢分析總結(jié)
- 基于MYSQL中優(yōu)化的一些方法
- jdbc調(diào)用mysql存儲(chǔ)過(guò)程實(shí)現(xiàn)代碼
- KB967723補(bǔ)丁造成的MYSQL在Win2003上頻繁連接不上
- 綠色版mysql注冊(cè)卸載服務(wù)方法
- 解決sql server 2005 express中sa不能登錄
- SQL查詢超時(shí)的設(shè)置方法(關(guān)于timeout的處理)
- sql語(yǔ)句:SQLServer字段排序(按筆畫,拼音,拼音首字母)
- 相關(guān)鏈接:
- 教程說(shuō)明:
Mssql數(shù)據(jù)庫(kù)教程-教你幾個(gè)MySQL鮮為人知特殊技巧
。