MYSQL的高階高階教程 1 編碼設定

2021-10-08 05:13:27 字數 1467 閱讀 7492

博主曰:一杯茶,一包煙,乙個小姐姐看一天。

資料庫儲存中文亂碼是常見的小問題,對於新手或者沒有自己裝過資料庫的人來說可能沒有遇到過資料庫亂碼問題。還有的人只知其然,卻不知其所以然。今天我們就來徹底乾掉這個知識點。其實亂碼問題解決起來非常簡單 ,只需要配置檔案裡修改資料庫編碼就可以了,我們首先來學習一些基礎知識。

1.舉個栗子:

當向 mysql 資料庫插入一條帶有中文的資料形如 insert into employee values(1,『魯智深』,『bonze』,『2020-07-17』.『是個喝酒吃肉的好和尚!』); 出現亂碼時,使用語句 show variables like 『character%』; 來檢視當前資料庫的相關編碼集。

2.上述問題出現原因:

mysql 共有六處使用了字符集,其中database、server、system(預設utf-8,無法做出修改)屬於伺服器相關;connection、client、results 屬於客戶端相關;而mysql中預設字符集是latin1,他是不支援中文的。

想保證中文不亂嗎只需要使mysql使用的字符集支援中文且一致就可以了。通常使用utf-8

名稱描述

character_set_client

客戶端使用的字符集

character_set_connection

資料庫連線使用的字符集,預設伺服器端字符集保持一致

character_set_database

某個庫的字符集,如果建庫沒有指定將使用伺服器安裝時指定的預設字符集

character_set_results

返回給客戶端資料時用到的編碼,沒有指定將使用伺服器安裝時指定的預設字符集

character_set_server

為伺服器安裝時指定的預設字符集設定

character_set_system

為資料庫系統使用的字符集設定

3.解決問題

解決上述問題有兩種方式,一種是臨時解決,在此不做過多贅述。我們要說的就是永久解決這個問題,千言萬語其實就是一句話,在 mysql 的安裝目錄下有乙個 my.ini 配置檔案(linux下是/etc/my.cnf),在這個配置檔案中 [mysql] 與客戶端配置相關,[mysqld] 與伺服器配置相關。預設配置如下:

[mysql]

default-character-set=utf8

[mysqld]

character-set-server=utf8

mysql高階教程

trace分析器執行計畫 mysql5.6提供了對sql的跟蹤trace,通過trace為了見能夠進一步了解為什麼優化器選擇a計畫,而不是選擇b 計畫,開啟trace,設定格式我json,並設定trace最大能夠使用的記憶體大小,避免解析過程中因為預設記憶體小二不能夠完整展示。set optimiz...

mysql高階教程(一)

今天我們來學習一些mysql的高階使用教程。首先,我們用select語句來檢視一下這個persons的表,注意這三句的結果 我們先來試試用 like 找出lastname是zh開頭的人 這裡的 是乙個萬用字元 這裡我們又用like找到了lastname以 ng 結尾的,中間有 i 的,以及中間沒有 ...

mysql 高階優化(1)

b tree 指的是 balance tree,也就是平衡樹。平衡樹是一顆查詢樹,並且所有葉子節點位於同一層。b tree 是基於 b tree 和葉子節點順序訪問指標進行實現,它具有 b tree 的平衡性,並且通過順序訪問指標來提高區間查詢的效能。在 b tree 中,乙個節點中的 key 從左...