数据库优化之新建字符集和排序规则 (新建数据库字符集和排序规则)

在数据库运维过程中,为了提高数据库的效率和性能,我们需要对数据库进行优化。其中,新建字符集和排序规则是数据库优化的重要方面之一。这篇文章将从以下几个方面介绍如何新建字符集和排序规则来提高数据库的性能。

一、字符集和排序规则的概念

字符集是指一组规定了字符编码和字形的符号,它决定了数据库中字符的存储和处理方式。排序规则则是对字符进行比较和排序的一组规则。不同的字符集和排序规则会影响到查询语句的执行效率和返回结果的正确性。

二、新建字符集和排序规则的作用

默认情况下,SQL Server数据库提供了许多常用的字符集和排序规则,但是有时候我们需要根据具体的业务需求或特殊情况,自行定义字符集和排序规则。通过新建字符集和排序规则,可以实现以下作用:

1、提高查询效率:自定义字符集和排序规则可以适应不同的查询场景,优化查询语句的执行效率,降低数据库的响应时间。

2、确保数据的正确性:字符集和排序规则决定了字符的存储和处理方式,不同的字符集和排序规则可能会导致查询结果的不一致性和错误性。

3、增加数据库的可扩展性:自定义字符集和排序规则可以满足不同语言和地域的需求,提高数据库的可扩展性和兼容性。

三、新建字符集和排序规则的方法

1、新建字符集

新建字符集可以通过SQL Server Management Studio来实现。具体方法如下:

(1)在SQL Server Management Studio中,选择“新建数据库”菜单,创建一个新的数据库。

(2)在“属性”中选择“字符集”选项卡,在“字符集”下拉框中选择“新建字符集”。

(3)在“新建字符集”对话框中,输入字符集的名称,并选择字符集的编码方式和排序规则。点击“确定”即可完成新建字符集的操作。

2、新建排序规则

新建排序规则也可以通过SQL Server Management Studio来实现。具体方法如下:

(1)在SQL Server Management Studio中,选择“新建数据库”菜单,创建一个新的数据库。

(2)在“属性”中选择“字符集”选项卡,选择要新建排序规则的字符集。

(3)在“排序规则”下拉框中选择“新建排序规则”。

(4)在“新建排序规则”对话框中,输入排序规则的名称,并设置排序规则的选项,如大小写敏感、重音符号等。最后点击“确定”即可完成新建排序规则的操作。

四、新建字符集和排序规则的注意事项

1、在新建字符集和排序规则时,需要慎重考虑业务需求和数据库的特殊情况,避免不必要的数据冗余和查询错误。

2、在新建字符集和排序规则后,需要对数据库中已有的表和列进行修改和更新,否则可能会导致查询结果的错误和不一致性。

3、在新建字符集和排序规则后,需要对查询语句和存储过程进行修改和更新,以保证其兼容新的字符集和排序规则。

五、

新建字符集和排序规则是提高数据库性能和效率的重要手段之一。通过自定义字符集和排序规则,可以适应不同的查询场景,提高查询效率和数据的正确性,增加数据库的可扩展性和兼容性。在进行新建字符集和排序规则时,需要慎重考虑业务需求和数据库的特殊情况,并进行相应的修改和更新。

相关问题拓展阅读:

如何建立Mysql数据库

一般用工具,如Navicat Premium

1、选择要建立数据库的服务器。如本地localhost

2、右键茄厅localhost,选颤贺隐择新建数据库

3、为数据库起名,然后字符集一般选择utf8,排序规则可拍租以不选,点确定即可。

mysql用sql语句创建表和数据库怎么设置字符编码’

方法如下:

我们先建一个DEMO表,来做我们今天的实现,建表语句如下:

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查询一下,如下图

请对比上下图,可以发现 多出了一个AGE字段,此处是CHAR类型的。

那么如何删除我们刚加的字段呢,

ALTER TABLE DEMODROP COLUMN AGE;

select查询一下,如下图

请对比上下图,可以发现 AGE字段被删迟余除掉了

我们在把这个字段加回来

ALTER TABLE DEMO ADD AGE CHAR(3);,

我们用视图工具DBVISUAL看下表机构,这时AGE字段御侍是CHAR类型的

我们如果需要把这个字段修改为VARCHAR类型的怎么办呢,

ALTER TABLE DEMO MODIFY  AGE   VARCHAR(20),

然后我们在用视图工具DBVISUAL看下表机构,这时AGE字段是VARCHAR类型的

— 创建数据库时,设置数据库滚橘的编码方式 

— CHARACTER SET:指定数据库采用的字符集,utf8不能写成utf-8

— COLLATE:指定数据库字符集的排序规则,utf8的默认排序规则为utf8_general_ci(通过show character set查看)

drop database if EXISTS dbtest;

create database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;

— 修改数据库编码

alter database dbtest CHARACTER SET GBK COLLATE gbk_chinese_ci;

alter database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;

— 创建表时,设置表、字段编码

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;

— 查看创建数据库的指令并查看数据库使用的编码

show create database dbtest;

— 查看数据库编码:

show variables like ‘%char%’;

— 设置character_set_server、set character_set_client和set character_set_results

set character_set_server = utf8; — 服务器的默认字符集。使用这个语句可以修改成功,但重启服务后会失效。根本的办法大春团是修改配置MYSQL文件MY.INI,

character_set_server=utf8,配置到mysqld字段下。

set character_set_client = gbk; — 来自客户端的语句的字符集。服务器使用character_set_client变量作为客户端发送的查询中使用的字符集。

set character_set_results = gbk; — 用于向客户端返回查询结果的字符集。森猜character_set_results变量指示服务器返回查询结果到客户端使用的字符集。包括结果数据,例如列值和结果元数据(如列名)。

— 查看某字段使用的编码:

SELECT CHARSET(email) FROM tbtest;

ASCII

用途:用来映射简单的单字节字符,比如大小写英文字母、阿拉伯数字、常用的标点符、运算符、控制字符等。

编码范围:U+U+007F

注意:对于用这类字符的场景够用了,但是却无法表达比如汉字,日文等编码。

2. UNICODE

用途:用来映射包含 ASCII 以内的其他的所有字符。

编码范围:U+U+10FFFF

注意:ASCII 是 UNICODE 的子集,ASCII 编码的字符可以无损带迟亏转换为 UNICODE 编码的字符。

MySQL 常用字符集

1. Latin1

Latin1 是 cp1252 或者 ISO的别名。ISO编码是单字节编码,向下兼容 ASCII。

编码范围:U+U+00FF

ISO收录的字符除 ASCII 收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。

单字节内的空间都被 ISO编码占用,所以能够用 ISO编码存储、传输其他任何编码的字节流。

比如把一个 Utf8mb4 的编码或者 GBK 的编码存入 Latin1,不会有任何问题。因为 Latin1 保留了原始的字节流,这也就是 MySQL 长期以来把 Latin1 做默认字符集的原因。

但是由于 Latin1 对任何字符都存放字节流,造成了字符个数的浪费。

比如:

CHAR(10) CHARACTER SET LATIN1;CHAR(10) CHARACTER SET UTF8;

该字段中存储字符个数 UTF8 是 Latin1 的三倍!!!

2. GB18030

GB18030 是中国官方标准字符集,向前兼容 GBK、GB2312,是这两个的超集。用 1、2、4 个字节分别表示一个符号。比如对一般中文字符,默认是用两个字节编码存储。Windows 系统,默认用的就是 GB18030。

若只是存储中文字符,那 GB18030 更佳。

原因有两点:

1)占用空间小,比如比 UTF8 小。

2)存储的汉字根据拼音来排序,检索快。

3. UTF8

UTF8 是 Unicode 的编码实现,旦悔可以存储 UNICODE 编码对应的任何字符, 这也是使用最多的一种编码。更大的特点就蠢神是变长的编码方式,用 1 到 4 个字节表示一个符号,可以根据不同的符号编码字节长度。

字母或数字用 1 字节,汉字用 3 字节,emoji 表情符号用 4 字节。UTF8 字符集目前是使用最广泛的。

注意!MySQL 里常说的 UTF8 是 UTF8MB3 的别名,UTF8MB3 是 UTF8MB4 的子集,UTF8MB4 才是真正的 4 字节 UTF8 字符集!

UTF8MB3 表示更大支持 3 个字节存储字符,UTF8MB4 表示更大 4 个字节存储字符。根据实际需要和未来展望,MySQL 8.0 已经默认用 UTF8MB4 基础字符集。

新建数据库字符集和排序规则的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于新建数据库字符集和排序规则,数据库优化之新建字符集和排序规则,如何建立Mysql数据库,mysql用sql语句创建表和数据库怎么设置字符编码’的信息别忘了在本站进行查找喔。


数据运维技术 » 数据库优化之新建字符集和排序规则 (新建数据库字符集和排序规则)