mysql 一些字元設定,及其作用

2022-02-25 06:12:34 字數 1367 閱讀 4829

[1] 伺服器(資料)端的字符集和collation,可以分成四級逐層指定——server, database, table, column。當mysql訪問位於某一列(column)的資料時,如果column的字符集和collation沒有指定,就會向上追溯table 的;如果table也沒有指定字符集和collation,就以database的字符集和collation作為預設值;如果database仍舊沒有 指定,那麼就以伺服器的字符集和collation作為預設值。

那麼server的字符集和collation的預設值又是從**來的呢?答案是,配置檔案(my.ini)和mysqld(或者mysqld- nt)的命令列引數中都可以指定。如果不幸的,你根本沒有在my.ini或者命令列中指定,那麼mysql就會使用編譯mysql時指定的預設字符集—— latin1。

但是,需要注意的是,如果安裝mysql時選擇了多語言支援(一般用中文的都會選擇吧),安裝程式會自動在配置檔案中設定default-character-set=utf8

這樣,所有建立的資料庫、表,除非明確指出使用其它字符集,都會預設的使用utf作為資料的字符集(同時使用utf8_general_ci作為預設collation,因為它是utf8的預設collation)。

相關系統變數

character_set_server:伺服器的字符集

collation_server:伺服器的collation

character_set_database:資料庫字符集

collation_database:資料庫的collation

[2] 客戶端。對於客戶端傳送來的literal string(例如insert,update語句當中的值),mysql需要知道它們是什麼編碼。同時,mysql返回給客戶端的值(例如select語句的返回值),也可以按照指定的編碼返回。

相關系統變數

character_set_client:客戶端傳送過來文字的字符集

character_set_results:傳送給客戶端的結果所使用的字符集

[3] 連線。用於連線的字符集和collation,是指mysql在接受到客戶端傳送來的文字之後,轉換成何種字符集,用什麼規則進行比較。需要注意的是,如果是將文字和資料庫中某個column的值比較,將優先使用該column的字符集和collation。

相關系統變數

character_set_connection:用於連線的字符集

collation_connection:用於連線的collation

Spring一些常用註解及其作用

controller 處理http請求的控制器 例子 controller public class hellocontroller spring4之後新加入的註解,原來返回json需要 responsebody和 controller配合。即 restcontroller是 responsebod...

Lock中的一些方法及其作用

1 getholdcount 查詢當前執行緒保持鎖定的個數,也就是呼叫lock 方法的次數。2 getqueuelength 返回正等待獲取鎖定的執行緒估計數。比如有5個執行緒,1個執行緒首先執行await 方法,那麼在呼叫方法後返回值是4,說明有4個執行緒同時在等待lock的釋放。3 getwai...

mysql優化一些引數的設定

在整體的系統執行過程中,資料庫伺服器 mysql 的壓力是最大的,不僅占用很多的記憶體和 cpu 資源,而且占用著大部分的磁碟 io 資源,連 php 的官方都在聲稱,說 php 指令碼 80 的時間都在等待 mysql 查詢返回的結果。由此可見,提高系統的負載能力,降低 mysql 的資源消耗迫在...