新聞中心
在數(shù)據(jù)庫運(yùn)維過程中,為了提高數(shù)據(jù)庫的效率和性能,我們需要對數(shù)據(jù)庫進(jìn)行優(yōu)化。其中,新建字符集和排序規(guī)則是數(shù)據(jù)庫優(yōu)化的重要方面之一。這篇文章將從以下幾個方面介紹如何新建字符集和排序規(guī)則來提高數(shù)據(jù)庫的性能。

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),蒼溪企業(yè)網(wǎng)站建設(shè),蒼溪品牌網(wǎng)站建設(shè),網(wǎng)站定制,蒼溪網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,蒼溪網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
一、字符集和排序規(guī)則的概念
字符集是指一組規(guī)定了字符編碼和字形的符號,它決定了數(shù)據(jù)庫中字符的存儲和處理方式。排序規(guī)則則是對字符進(jìn)行比較和排序的一組規(guī)則。不同的字符集和排序規(guī)則會影響到查詢語句的執(zhí)行效率和返回結(jié)果的正確性。
二、新建字符集和排序規(guī)則的作用
默認(rèn)情況下,SQL Server數(shù)據(jù)庫提供了許多常用的字符集和排序規(guī)則,但是有時候我們需要根據(jù)具體的業(yè)務(wù)需求或特殊情況,自行定義字符集和排序規(guī)則。通過新建字符集和排序規(guī)則,可以實現(xiàn)以下作用:
1、提高查詢效率:自定義字符集和排序規(guī)則可以適應(yīng)不同的查詢場景,優(yōu)化查詢語句的執(zhí)行效率,降低數(shù)據(jù)庫的響應(yīng)時間。
2、確保數(shù)據(jù)的正確性:字符集和排序規(guī)則決定了字符的存儲和處理方式,不同的字符集和排序規(guī)則可能會導(dǎo)致查詢結(jié)果的不一致性和錯誤性。
3、增加數(shù)據(jù)庫的可擴(kuò)展性:自定義字符集和排序規(guī)則可以滿足不同語言和地域的需求,提高數(shù)據(jù)庫的可擴(kuò)展性和兼容性。
三、新建字符集和排序規(guī)則的方法
1、新建字符集
新建字符集可以通過SQL Server Management Studio來實現(xiàn)。具體方法如下:
(1)在SQL Server Management Studio中,選擇“新建數(shù)據(jù)庫”菜單,創(chuàng)建一個新的數(shù)據(jù)庫。
(2)在“屬性”中選擇“字符集”選項卡,在“字符集”下拉框中選擇“新建字符集”。
(3)在“新建字符集”對話框中,輸入字符集的名稱,并選擇字符集的編碼方式和排序規(guī)則。點擊“確定”即可完成新建字符集的操作。
2、新建排序規(guī)則
新建排序規(guī)則也可以通過SQL Server Management Studio來實現(xiàn)。具體方法如下:
(1)在SQL Server Management Studio中,選擇“新建數(shù)據(jù)庫”菜單,創(chuàng)建一個新的數(shù)據(jù)庫。
(2)在“屬性”中選擇“字符集”選項卡,選擇要新建排序規(guī)則的字符集。
(3)在“排序規(guī)則”下拉框中選擇“新建排序規(guī)則”。
(4)在“新建排序規(guī)則”對話框中,輸入排序規(guī)則的名稱,并設(shè)置排序規(guī)則的選項,如大小寫敏感、重音符號等。最后點擊“確定”即可完成新建排序規(guī)則的操作。
四、新建字符集和排序規(guī)則的注意事項
1、在新建字符集和排序規(guī)則時,需要慎重考慮業(yè)務(wù)需求和數(shù)據(jù)庫的特殊情況,避免不必要的數(shù)據(jù)冗余和查詢錯誤。
2、在新建字符集和排序規(guī)則后,需要對數(shù)據(jù)庫中已有的表和列進(jìn)行修改和更新,否則可能會導(dǎo)致查詢結(jié)果的錯誤和不一致性。
3、在新建字符集和排序規(guī)則后,需要對查詢語句和存儲過程進(jìn)行修改和更新,以保證其兼容新的字符集和排序規(guī)則。
五、
新建字符集和排序規(guī)則是提高數(shù)據(jù)庫性能和效率的重要手段之一。通過自定義字符集和排序規(guī)則,可以適應(yīng)不同的查詢場景,提高查詢效率和數(shù)據(jù)的正確性,增加數(shù)據(jù)庫的可擴(kuò)展性和兼容性。在進(jìn)行新建字符集和排序規(guī)則時,需要慎重考慮業(yè)務(wù)需求和數(shù)據(jù)庫的特殊情況,并進(jìn)行相應(yīng)的修改和更新。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風(fēng)格,熱線:028-86922220如何建立Mysql數(shù)據(jù)庫
一般用工具,如Navicat Premium
1、選擇要建立數(shù)據(jù)庫的服務(wù)器。如本地localhost
2、右鍵茄廳localhost,選顫賀隱擇新建數(shù)據(jù)庫
3、為數(shù)據(jù)庫起名,然后字符集一般選擇utf8,排序規(guī)則可拍租以不選,點確定即可。
mysql用sql語句創(chuàng)建表和數(shù)據(jù)庫怎么設(shè)置字符編碼’
方法如下:
我們先建一個DEMO表,來做我們今天的實現(xiàn),建表語句如下:
CREATE TABLE
DEMO
(
NAME VARCHAR(50) COMMENT ‘姓名’,
SEX CHAR(1) COMMENT ‘碼拆滾性別’,
PRIMARY KEY (NAME)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’例子表’;
并且select查詢一下,如下圖
增加一個AGE字段,
ALTER TABLE DEMO ADD AGE CHAR(3);
select查詢一下,如下圖
請對比上下圖,可以發(fā)現(xiàn) 多出了一個AGE字段,此處是CHAR類型的。
那么如何刪除我們剛加的字段呢,
ALTER TABLE DEMODROP COLUMN AGE;
select查詢一下,如下圖
請對比上下圖,可以發(fā)現(xiàn) AGE字段被刪遲余除掉了
我們在把這個字段加回來
ALTER TABLE DEMO ADD AGE CHAR(3);,
我們用視圖工具DBVISUAL看下表機(jī)構(gòu),這時AGE字段御侍是CHAR類型的
我們?nèi)绻枰堰@個字段修改為VARCHAR類型的怎么辦呢,
ALTER TABLE DEMO MODIFY AGE VARCHAR(20),
然后我們在用視圖工具DBVISUAL看下表機(jī)構(gòu),這時AGE字段是VARCHAR類型的
— 創(chuàng)建數(shù)據(jù)庫時,設(shè)置數(shù)據(jù)庫滾橘的編碼方式
— CHARACTER SET:指定數(shù)據(jù)庫采用的字符集,utf8不能寫成utf-8
— COLLATE:指定數(shù)據(jù)庫字符集的排序規(guī)則,utf8的默認(rèn)排序規(guī)則為utf8_general_ci(通過show character set查看)
drop database if EXISTS dbtest;
create database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;
— 修改數(shù)據(jù)庫編碼
alter database dbtest CHARACTER SET GBK COLLATE gbk_chinese_ci;
alter database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;
— 創(chuàng)建表時,設(shè)置表、字段編碼
use dbtest;
drop table if exists tbtest;
create table tbtest(
id int(10) auto_increment,
user_name varchar(60) CHARACTER SET GBK COLLATE gbk_chinese_ci,
email varchar(60),
PRIMARY key(id)
)CHARACTER SET utf8 COLLATE utf8_general_ci;
— 修改表編碼
alter table tbtest character set utf8 COLLATE utf8_general_ci;
— 修改字段編碼
ALTER TABLE tbtest MODIFY email VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_general_ci;
— 查看所有的字符編碼
SHOW CHARACTER SET;
— 查看創(chuàng)建數(shù)據(jù)庫的指令并查看數(shù)據(jù)庫使用的編碼
show create database dbtest;
— 查看數(shù)據(jù)庫編碼:
show variables like ‘%char%’;
— 設(shè)置character_set_server、set character_set_client和set character_set_results
set character_set_server = utf8; — 服務(wù)器的默認(rèn)字符集。使用這個語句可以修改成功,但重啟服務(wù)后會失效。根本的辦法大春團(tuán)是修改配置MYSQL文件MY.INI,
character_set_server=utf8,配置到mysqld字段下。
set character_set_client = gbk; — 來自客戶端的語句的字符集。服務(wù)器使用character_set_client變量作為客戶端發(fā)送的查詢中使用的字符集。
set character_set_results = gbk; — 用于向客戶端返回查詢結(jié)果的字符集。森猜character_set_results變量指示服務(wù)器返回查詢結(jié)果到客戶端使用的字符集。包括結(jié)果數(shù)據(jù),例如列值和結(jié)果元數(shù)據(jù)(如列名)。
— 查看某字段使用的編碼:
SELECT CHARSET(email) FROM tbtest;
ASCII
用途:用來映射簡單的單字節(jié)字符,比如大小寫英文字母、阿拉伯?dāng)?shù)字、常用的標(biāo)點符、運(yùn)算符、控制字符等。
編碼范圍:U+U+007F
注意:對于用這類字符的場景夠用了,但是卻無法表達(dá)比如漢字,日文等編碼。
2. UNICODE
用途:用來映射包含 ASCII 以內(nèi)的其他的所有字符。
編碼范圍:U+U+10FFFF
注意:ASCII 是 UNICODE 的子集,ASCII 編碼的字符可以無損帶遲虧轉(zhuǎn)換為 UNICODE 編碼的字符。
MySQL 常用字符集
1. Latin1
Latin1 是 cp1252 或者 ISO的別名。ISO編碼是單字節(jié)編碼,向下兼容 ASCII。
編碼范圍:U+U+00FF
ISO收錄的字符除 ASCII 收錄的字符外,還包括西歐語言、希臘語、泰語、阿拉伯語、希伯來語對應(yīng)的文字符號。
單字節(jié)內(nèi)的空間都被 ISO編碼占用,所以能夠用 ISO編碼存儲、傳輸其他任何編碼的字節(jié)流。
比如把一個 Utf8mb4 的編碼或者 GBK 的編碼存入 Latin1,不會有任何問題。因為 Latin1 保留了原始的字節(jié)流,這也就是 MySQL 長期以來把 Latin1 做默認(rèn)字符集的原因。
但是由于 Latin1 對任何字符都存放字節(jié)流,造成了字符個數(shù)的浪費(fèi)。
比如:
CHAR(10) CHARACTER SET LATIN1;CHAR(10) CHARACTER SET UTF8;
該字段中存儲字符個數(shù) UTF8 是 Latin1 的三倍?。?!
2. GB18030
GB18030 是中國官方標(biāo)準(zhǔn)字符集,向前兼容 GBK、GB2312,是這兩個的超集。用 1、2、4 個字節(jié)分別表示一個符號。比如對一般中文字符,默認(rèn)是用兩個字節(jié)編碼存儲。Windows 系統(tǒng),默認(rèn)用的就是 GB18030。
若只是存儲中文字符,那 GB18030 更佳。
原因有兩點:
1)占用空間小,比如比 UTF8 小。
2)存儲的漢字根據(jù)拼音來排序,檢索快。
3. UTF8
UTF8 是 Unicode 的編碼實現(xiàn),旦悔可以存儲 UNICODE 編碼對應(yīng)的任何字符, 這也是使用最多的一種編碼。更大的特點就蠢神是變長的編碼方式,用 1 到 4 個字節(jié)表示一個符號,可以根據(jù)不同的符號編碼字節(jié)長度。
字母或數(shù)字用 1 字節(jié),漢字用 3 字節(jié),emoji 表情符號用 4 字節(jié)。UTF8 字符集目前是使用最廣泛的。
注意!MySQL 里常說的 UTF8 是 UTF8MB3 的別名,UTF8MB3 是 UTF8MB4 的子集,UTF8MB4 才是真正的 4 字節(jié) UTF8 字符集!
UTF8MB3 表示更大支持 3 個字節(jié)存儲字符,UTF8MB4 表示更大 4 個字節(jié)存儲字符。根據(jù)實際需要和未來展望,MySQL 8.0 已經(jīng)默認(rèn)用 UTF8MB4 基礎(chǔ)字符集。
新建數(shù)據(jù)庫字符集和排序規(guī)則的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于新建數(shù)據(jù)庫字符集和排序規(guī)則,數(shù)據(jù)庫優(yōu)化之新建字符集和排序規(guī)則,如何建立Mysql數(shù)據(jù)庫,mysql用sql語句創(chuàng)建表和數(shù)據(jù)庫怎么設(shè)置字符編碼’的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)【028-86922220】值得信賴的成都網(wǎng)站建設(shè)公司。多年持續(xù)為眾多企業(yè)提供成都網(wǎng)站建設(shè),成都品牌建站設(shè)計,成都高端網(wǎng)站制作開發(fā),SEO優(yōu)化排名推廣服務(wù),全網(wǎng)營銷讓企業(yè)網(wǎng)站產(chǎn)生價值。
新聞標(biāo)題:數(shù)據(jù)庫優(yōu)化之新建字符集和排序規(guī)則(新建數(shù)據(jù)庫字符集和排序規(guī)則)
文章位置:http://fisionsoft.com.cn/article/djpjgsd.html


咨詢
建站咨詢
