超詳細MySQL入門教程,這11個MySQL資料庫的高階特性你知道嗎?

牛仔碼農發表於2021-11-18

MySQL作為目前最流行的關係型資料庫管理系統之一,MySQL資料庫有著許多的特性,在這些特性之中,有一些光彩奪目的高階特性,為MySQL資料庫的強大功能實現貢獻了不菲的力量,這篇文章我們就來一起看看這11個MySQL高階特性。

1.分割槽表

分割槽表是一種粗粒度的、簡易的索引策略,適用於大資料量的過濾場景。最適合的場景是,在沒有合適的索引時,對其中幾個分割槽進行全表掃描,或者是隻有一個分割槽和索引是熱點,而且這個分割槽和索引都能夠在記憶體中;限制單表分割槽數不要超過150個,並且注意某些導致無法做分割槽過濾的細節,分割槽表對於單條記錄的程式並沒有什麼優勢,需要注意這類查詢的效能。

2.檢視

對好幾個表的複雜查詢,使用檢視有時候會大大簡化問題。當檢視使用臨時表時,無法將WHERE條件下推到各個具體的表,也不能使用任何索引,需要特別注意這類查詢的效能。如果為了便利,使用檢視是很合適的。

3.外來鍵約束

外來鍵限制會將約束放到MySQL中,這對於必須維護外來鍵的場景,效能會更高。不過這也會帶來額外的複雜性和額外的索引消耗,還會增加多表之間的互動,會導致系統中有更多的鎖和競爭。外來鍵可以被看作是一個確保系統完整性的額外的特性,但是如果設計的是一個高效能的系統,那麼外來鍵就會顯得很臃腫了。很多人在更在意系統的效能的時候都不會使用外來鍵,而是通過應用程式來維護。

4.MySQL內部儲存程式碼

常用的方式有:

1)儲存過程和函式

2)觸發器

可以在執行INSERT、UPDATE或者DELETE的時候,執行一些特定的操作。可以在MySQL中指定是在SQL語句執行前觸發還是在執行後觸發。

3)事件

類似於LINUX的定時任務,不過完全是在MySQL內部實現。

4)在儲存過程中保留註釋

5.繫結變數

繫結變數的SQL語句:INSERT INTO tbl(col1, col2, col3) VALUES (?, ?, ?);。繫結變數的SQL,使用問號標記可以接收引數的位置,當真正需要執行具體查詢的時候,則使用具體值代替這些問號。

6.外掛

外掛型別:

1)儲存過程外掛

2)後臺外掛

3)INFORMATION_SCHEMA外掛

4)全文解析外掛

5)審計外掛

6)認證外掛

7.字符集和校對

字符集是一種位元組到字元之間的對映,而校對規則是指一個字符集的排序方法。很多人都使用Latin1(預設字符集,對英語和某些歐洲語言有效)或者UTF-8。如果使用的是UTF-8,那麼在使用臨時表和緩衝區的時候需要注意:MySQL會按照每個字元三個位元組的最大佔用空間來分配儲存空間,這可能消耗更多的記憶體或者磁碟空間。注意讓字符集和MySQL字符集配置相符,否則可能會由於字符集轉換讓某些索引無法正常工作。

8.全文索引

全文索引有著自己獨特的語法,沒有索引也可以工作,如果有索引效率會更高。

全文索引可以支援各種字元內容的搜尋,也支援自然語言搜尋和布林搜尋。

9.分散式(XA)事務

很少會有人用MySQL得XA事務特性。除非你真正明白引數innodb_support_xa的意義,否則不要修改這個引數的值,並不是只有顯示使用XA事務時才需要設定這個引數。InnoDB和二進位制日誌也是需要使用XA事務來做協調的,從而確保在系統崩潰的時候,資料能夠一致地恢復。

10.查詢快取:

完全相同的查詢在重複執行的時候,查詢快取可以立即返回結果,而無須在資料庫中重新執行一次。根據經驗,在高併發壓力環境中查詢快取會導致系統效能的下降,甚至僵死。如果一定要使用查詢快取,那麼不要設定太大記憶體,而且只有在明確收益的時候才使用。查詢快取是一個非常方便的快取,對應用程式完全透明,無需任何額外的編碼,但是如果希望有更高效的查詢快取,建議使用memacched等其他快取方案。

11.遊標

MySQL在伺服器中提供只讀的、單向的遊標,而且只能在儲存過程或者更底層的客戶端API中使用。因為遊標中指向的物件都是儲存在臨時表中而不是實際查詢到的資料,所以MySQL遊標總是可讀的。

以上就是關於11個mysql高階特性的介紹,這11個MySQL高階特性一起為MySQL資料庫的各個功能的實現奠定了基礎。想要深入瞭解這11個MySQL資料庫高階特性的小夥伴,可以觀看動力節點老杜講的MySQL教程,對每個MySQL高階特性都有深入的分析和講解。

MySQL學習教程

這個mysql學習教程是最適合新手學習入門,杜老師講課風格雷厲風行,乾脆利索。

特點:

1、適合絕對零基礎的學者;

2、採用循序漸進的方式教學,所以不存在聽不懂,學不會;

3、看完之後完全可以擔當日常開發工作;

總的來說,視訊是站在絕對零基礎的角度來教,主要內容包括:DQL、DML、DDL、DCL、TCL等SQL語句的學習,尤其對DQL語句進行了詳細的講解,包括單表查詢、多表聯查、內連線、外連線等。另外還講授了資料庫事務的處理,資料庫索引的實現原理,檢視的使用等內容。

通過本mysql教程的學習可以讓一個小白從不會資料庫到能夠在程式設計中熟練使用資料庫。

MySQL全套學習資料獲取方式:見評論區!!!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70007020/viewspace-2842923/,如需轉載,請註明出處,否則將追究法律責任。

相關文章