將字元對映成二進位制的過程叫做編碼,將二進位制對映成字元的過程叫做解碼。
我們看一下常用字符集的情況:
ascii字符集:
共收錄128個字元,包括空格、標點符號、數字、大小寫字母和一些不可見字元。
iso 8859-1字符集:
共收錄256個字元,它在ascii字符集
的基礎上有擴充了128個西歐常用字元。
gb2312字符集:
收錄了漢字以及拉丁字母、希臘字母、日文平假名以及片假名字母、俄語西里爾字母,收錄漢字6763個。
gbk字符集
:gbk字符集
在gb2312字符集進行了擴充。
utf-8字符集:
幾乎收錄了當今世界各個國家/地區使用的字元,而且還在不斷擴充。
umf8mb3:"閹割"過的utf-8字符集,使用1~3位元組表示字元。 umf8mb4:正宗的utf-8字符集,使用1~4位元組表示字元。比較規則是對某個字符集中字元比較大小的一種規則,一種字符集對應若干種比較規則,其中有乙個預設比較規則,乙個比較規則必須對應乙個字符集。utf8是umf8mb3的別名。
mysql
有4個字符集和比較規則,分別是伺服器級別、資料庫級別、表級別、列級別。
伺服器級別
(1)檢視伺服器級別的字符集
(2)檢視伺服器級別的比較規則
資料庫級別
(1)檢視資料庫級別的字符集
(2)檢視資料庫級別的比較規則
表級別我們可以在建立表和修改表的時候指定表的字符集和比較規則。如果表中沒有指定,則使用表所在的資料庫和字符集的比較規則作為該錶的字符集和比較規則。
列級別我們可以在建立列和修改列的時候指定列的字符集和比較規則。如果在建立列的沒有顯式指定字符集和比較規則,則該列缺省使用表的字符集和比較規則。
從本質上說,伺服器接收到的請求就是乙個位元組序列,伺服器將這個位元組序列看作是使用系統變數character_set_client
代表的字符集進行編碼的位元組序列。(每個客戶端與伺服器建立連線之後,伺服器都會為該客戶端維護乙個單獨的character_set_client
變數,是session級別的)
伺服器會將請求的位元組序列當做採用character_set_client
對應的字符集進行編碼的位元組序列,在真正處理請求時轉換為使用session級別的系統變數character_set_connection
對應的字符集進行編碼的位元組序列。
在客戶端接收的值與表中的某列值比較時,列的字符集和排序規則的優先順序更高。例如,
select * from t where c='我';
「我」採用的gbk
編碼,列c
採用的utf8
字符集編碼,這裡需要將請求中的「我」先從gbk
字符集轉換為utf8
。
以上面為例,在伺服器生成響應的時候,伺服器會將字串「我」從utf8字符集編碼轉換character_set_result
系統變數對應的字符集編碼後的位元組序列,之後再傳送給客戶端。
系統變數
描述character_set_client
伺服器認為請求是按照該系統變數指定的字符集進行編碼
character_set_connection
伺服器在處理請求時,會把請求位元組序列從 character_set_client轉換為character_set_connection
character_set_result
伺服器採用該系統變數指定的字符集對返回客戶端的字串進行編碼
在連線到伺服器時,客戶端將預設的字符集與使用者名稱、密碼等資訊一起傳送給伺服器,伺服器在接收後將character_set_client、character_set_connection
和character_set_result
這三個系統變數的值初始化為客戶端的預設字符集。
《Mysql是怎樣執行的》讀書筆記之成本的優化
在mysql中,乙個查詢的執行成本是由i o成本和cpu成本組成的,對於innodb儲存引擎來說,讀取乙個頁面的i o成本預設是1.0,讀取以及檢測一條記錄是否符合搜素條件的成本預設是0.2。在單錶查詢中,優化器生成執行計畫的步驟一般如下。在優化器生成執行計畫的過程中,需要依賴一些資料,這些資料可能...
《Mysql是怎樣執行的》讀書筆記之單錶訪問
查詢語句在本質上是一種宣告式的語法,具體執行方式有很多種。const refref or null range index all有的查詢可以使用索引合併的方式利用多個索引完後查詢。有三種。intersection索引合併 union索引合併 sort union索引合併 1.const 有時通過主...
讀書筆記 網路是怎樣連線的
一 電訊號傳輸tcp ip資料 三 接入網 1 adsl 不對稱數字使用者線,上行速率和下行速率不同 2 ftth 光纖到戶 3 pppoe 乙太網的點對點協議,將ppp訊息裝入乙太網包的方式進行傳輸的方式 4 bas 寬頻接入伺服器 5 網際網路接入路由器通過pppoe的發現機制查詢bas的mac...