欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL建立數(shù)據(jù)庫時字符集與排序規(guī)則的選擇詳解

 更新時間:2023年06月12日 09:06:58   作者:十一*  
當數(shù)據(jù)庫需要適應不同的語言就需要有不同的字符集,下面這篇文章主要給大家介紹了關(guān)于MySQL建立數(shù)據(jù)庫時字符集與排序規(guī)則的選擇的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

前言

在MySQL中,字符集和排序規(guī)則是區(qū)分開來的,你可以單獨設置字符集和排序規(guī)則。

MySQL字符集和排序規(guī)則有關(guān)聯(lián)而且還不是必選項,如果字符集和排序規(guī)則都不填寫,Mysql會做默認處理;或者設置其一,比如設置字符集,會默認設置了與字符集相應的排序規(guī)則。

我們建立數(shù)據(jù)庫是總要涉及到字符集和排序規(guī)則的選擇問題?怎么選擇呢,有什么區(qū)別呢?

一、字符集?

先說字符,字符(Character)是各種文字和符號的總稱,包括各國家文字、標點符號、圖形符號、數(shù)字等。

字符集(Character set)是多個字符的集合,常見字符集名稱:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。計算機要準確的處理各種字符集文字,就需要進行字符編碼,以便計算機能夠識別和存儲各種文字。

字符編碼(Character encoding)也稱字集碼,是把字符集中的字符通過編碼成為指定集合中某一對象(例如:比特模式、自然數(shù)序列、8位組或者電脈沖),以便文本在計算機中存儲和通過通信網(wǎng)絡的傳遞。常見的例子包括將拉丁字母表編碼成摩斯電碼和ASCII。其中,ASCII將字母、數(shù)字和其它符號編號,并用7比特的二進制來表示這個整數(shù)。通常會額外使用一個擴充的比特,以便于以1個字節(jié)的方式存儲。

二、Mysql中的字符集

在MySQL中,常用的幾個字符集有UTF8、UTF8MB4、UTF16、UTF32等,那么Unicode與UTF8、UTF8MB4、UTF16、UTF32是什么關(guān)系?我們新建數(shù)據(jù)庫時選擇哪種字符集呢?

1.Unicode與UTF8、UTF8MB4、UTF16、UTF32關(guān)系

Unicode(統(tǒng)一碼、萬國碼、單一碼)是計算機科學領域里的一項業(yè)界標準,包括字符集、編碼方案等。Unicode 是為了解決傳統(tǒng)的字符編碼方案的局限而產(chǎn)生的,它為每種語言中的每個字符設定了統(tǒng)一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉(zhuǎn)換、處理的要求。UTF8、UTF16、UTF32是Unicode碼一種實現(xiàn)形式,都是屬于Unicode編碼。

2.Mysql新建數(shù)據(jù)庫時選擇哪種字符集呢?

UTF8和UTF8MB4是常用的兩種字符集,至于這兩個選用哪個要根據(jù)自己業(yè)務情況而定。UTF8MB4兼容UTF8,比UTF8能表示更多的字符,Unicode編碼區(qū)從編碼區(qū)1-126屬于UTF8區(qū),當然UTF8MB4也兼容這個區(qū),126行以下就是UTF8MB4擴充區(qū),所以你要根據(jù)自己的業(yè)務進行選擇,一般情況下UTF8就滿足需求,當然如果考慮到以后擴展,比如考慮到以后存儲emoji,就選擇UTF8MB4,否則只是浪費空間。我建議還是選擇UTF8MB4,畢竟對于大部分公司而言空間不是什么大問題。

三、Mysql排序規(guī)則

UTF8MB4常用的排序規(guī)則:utf8mb4_unicode_ci、utf8mb4_general_ciutf8mb4_bin,選用哪種方式呢?先來分析一下:

1、準確性:

(1)utf8mb4_unicode_ci 是基于標準的Unicode來排序和比較,能夠在各種語言之間精確排序,不區(qū)分大小寫

(2)utf8mb4_general_ci 沒有實現(xiàn)Unicode排序規(guī)則,在遇到某些特殊語言或者字符集,排序結(jié)果可能不一致,不區(qū)分大小寫

2、性能:

  (1)utf8mb4_general_ci 在比較和排序的時候更快

 ?。?)utf8mb4_unicode_ci 在特殊情況下,Unicode排序規(guī)則為了能夠處理特殊字符的情況,實現(xiàn)了略微復雜的排序算法。相比選擇哪一種collation,使用者更應該關(guān)心字符集與排序規(guī)則在db里需要統(tǒng)一。

 ?。?)utf8mb4_bin:將字符串每個字符用二進制數(shù)據(jù)編譯存儲,區(qū)分大小寫,而且可以存二進制的內(nèi)容。

總而言之,utf8mb4_general_ci 和utf8mb4_unicode_ci 是我們最常使用的排序規(guī)則。utf8mb4_unicode_ci 校對速度快,但準確度稍差。utf8_unicode_ci準確度高,但校對速度稍慢,兩者都不區(qū)分大小寫。這兩個選哪個視自己情況而定,還是那句話盡可能保持db中的字符集和排序規(guī)則的統(tǒng)計。

四、Mysql查詢字符集和排序規(guī)則常用的命令

功能命令
查看數(shù)據(jù)庫字符集show create database 數(shù)據(jù)庫名
查看數(shù)據(jù)表全部字段排序規(guī)則show full columns from 表

總結(jié) 

到此這篇關(guān)于MySQL建立數(shù)據(jù)庫時字符集與排序規(guī)則的選擇的文章就介紹到這了,更多相關(guān)MySQL字符集與排序規(guī)則內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql的select?into給多個字段變量賦值方式

    mysql的select?into給多個字段變量賦值方式

    這篇文章主要介紹了mysql的select?into給多個字段變量賦值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • MySQL中的性別字段到底加不加索引

    MySQL中的性別字段到底加不加索引

    這篇文章主要介紹了MySQL中的性別字段到底加不加索引問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • MySQL窗口函數(shù)OVER()用法及說明

    MySQL窗口函數(shù)OVER()用法及說明

    這篇文章主要介紹了MySQL窗口函數(shù)OVER()用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • mysql 5.7.21解壓版本安裝 Navicat數(shù)據(jù)庫操作工具安裝

    mysql 5.7.21解壓版本安裝 Navicat數(shù)據(jù)庫操作工具安裝

    這篇文章主要為大家詳細介紹了mysql 5.7.21解壓版本安裝,Navicat數(shù)據(jù)庫操作工具安裝,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • mysql5.7.13 環(huán)境搭建教程(解壓縮版)

    mysql5.7.13 環(huán)境搭建教程(解壓縮版)

    這篇文章主要為大家詳細介紹了mysql解壓縮版環(huán)境搭建教程,具有一定的實用性,感興趣的小伙伴們可以參考一下
    2016-07-07
  • mysql報錯RSA?private?key?file?not?found的解決方法

    mysql報錯RSA?private?key?file?not?found的解決方法

    當MySQL報錯RSA?private?key?file?not?found時,可能是由于MySQL的RSA私鑰文件丟失或者損壞導致的,此時可以重新生成RSA私鑰文件,以解決這個問題
    2023-06-06
  • Mysql 設置boolean類型的操作

    Mysql 設置boolean類型的操作

    這篇文章主要介紹了Mysql 設置boolean類型的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • linux CentOS 7.4下 mysql5.7.20 密碼改回來的處理方法

    linux CentOS 7.4下 mysql5.7.20 密碼改回來的處理方法

    這篇文章主要介紹了linux CentOS 7.4下 mysql5.7.20 密碼改回來的處理方法,需要的朋友可以參考下
    2018-11-11
  • mysql通配符的具體使用

    mysql通配符的具體使用

    通配符用于替換字符串中的一個或多個字符,通配符與LIKE運算符一起使用,本文就詳細的介紹了mysql通配符的使用,具有一定的參考價值,感興趣的可以了解一下
    2023-05-05
  • MySQL中JSON字段數(shù)據(jù)類型詳解

    MySQL中JSON字段數(shù)據(jù)類型詳解

    JSON我相信大家都已經(jīng)很熟悉了,但在 MySQL中,直至 5.7 版本中,才正式引入 JSON數(shù)據(jù)類型,下面這篇文章主要給大家介紹了關(guān)于MySQL中JSON字段數(shù)據(jù)類型的相關(guān)資料,需要的朋友可以參考下
    2022-06-06

最新評論