MySQL学习笔记4:排序规则的修改
数据库的字符集和排序规则优先级:字段级别>表级别>schema级别>服务器级别(实例级别),如果没有设置字段级别的字符集和排序规则,那么默认就取表的,如果表上也没有设置那就默认取schema上的字符集和排序规则,一般来说schema上肯定是配置了的(必须要配置,否则会取默认的字符集和排序规则),实例级别的字符集和排序规则一般用不到。
如果要修改排序规则,那么至少要把一个表的所有字段和表的排序规则一起修改,否则就是在埋雷。一个表的字段用不一样的字符集和排序规则会导致混乱。
修改表的排序规则之前要先修改字段的排序规则,修改方式就是生成批量改字段属性的sql:
SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, '(', CHARACTER_MAXIMUM_LENGTH, ') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci', (CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END),(case when IFNULL(column_comment,'')='' then '' else concat(' COMMENT \'' , column_comment ,'\'') end),';') as `sql`
FROM information_schema.COLUMNS
WHERE 1=1and TABLE_SCHEMA = 'data_assets' #要修改的数据库名称and COLLATION_NAME!='utf8mb4_unicode_ci' #被改的编码
然后再修改表的排序规则。
修改字段排序规则修改字段属性,对大表来说非常慢,即使是不大的表,因为字段很多,也会对读写产生非常大的影响,会产生MDL(元数据锁),阻塞所有的读写,所以每一次修改都需要经过详细评估影响。
MySQL学习笔记4:排序规则的修改相关推荐
- mysql学习笔记——分组排序、分组求和
在 MySQL8.0 版本之前,是没有类似 Oracle.SQLserver.postgresql 等数据库中像 "select 窗口函数 over (partition by 用于分组 ...
- MySQL学习笔记——数据库的创建、修改与删除
目录 一.数据库的创建和管理 1.基础知识 1.1 数据储存过程 1.2 标识符的命名规则 1.3 MySQL中的数据类型: 2.创建和管理数据库 2.1 创建数据库 2.2 管理数据库 2.3 修改 ...
- mysql学习笔记之排序查询和函数(进阶四)
USE myemployees; #进阶四:排序查询() /* 语法: select 查询列表 from 表 order by 排序列表[asc|desc]asc升序desc降序,可不写,默认升序 / ...
- MySQL学习笔记3:排序规则和排序规则的影响
一.排序规则概念 在mysql数据库中,排序规则是依赖字符集编码的,他们在mysql中经常是捆绑的存在. 排序规则一般指对字符集中字符串之间的比较.排序制定的规则.一种字符集可以对应多种排序规则,但是 ...
- MySQL学习笔记 | 04 - MySQL数据库基本操作(增加、修改、删除、查看)
MySQL学习笔记 | 01-为什么要使用数据库 MySQL学习笔记 | 02 - MySQL在Windows下的安装.配置.服务启动/停止.用户登录.查看版本号 MySQL学习笔记 | 03 - M ...
- MySQL学习笔记-约束以及修改数据表
MySQL学习笔记-约束以及修改数据表 约束: 按功能划为: NOT NULL , PRIMARY KEY , UNIQUE KEY , DEFAULT , FOREIGN KEY 按数据列的数目划为 ...
- MySQL学习笔记-基础篇1
MySQL 学习笔记–基础篇1 目录 MySQL 学习笔记--基础篇1 1. 数据库概述与MySQL安装 1.1 数据库概述 1.1.1 为什么要使用数据库 1.2 数据库与数据库管理系统 1.2.1 ...
- MySQL学习笔记(1)——高可用组复制
MySQL学习笔记(1)--高可用组复制 积土成山,风雨兴焉.积水成渊,蛟龙生焉. 一.概念 组复制(MySQL Group Replication,MGR)是MySQL官方在MySQL 5.7.17 ...
- JavaEE 企业级分布式高级架构师(六)MySQL学习笔记(6)
MySQL学习笔记 性能优化篇 性能优化的思路 慢查询日志 慢查询日志介绍 开启慢查询功能 演示一 演示二 分析慢查询日志 MySQL自带的mysqldumpslow 使用percona-toolki ...
最新文章
- java2实用教程--第二章基本数据类型与数组
- Geospark从Shapefile中加载RDD
- VTK:PolyData之ExtractOutsideSurface
- python字符串去头尾_悉尼大学某蒟蒻的Python学习笔记
- Qt中QLabel的背景图片设置问题
- eclipse快速定位到错误处
- Yslow-23条规则
- access的papersize命令_[access报表]报表中使用自定义纸张,及设置自定义纸张大小
- 浅谈css3长度单位rem,以及移动端布局技巧
- java标识符_Java标识符的简单介绍
- python ----json数据处理
- ADS1112|MS1112|16位AD转换芯片|国产兼容PIN-TO-PIN。兼容替代无需修改软硬件
- 韩顺平python教程视频_尚硅谷_韩顺平_Linux_2018Linux基础入门教程全集
- 一些基础知识:脑科学、神经科学、心理学
- KVM虚拟化技术之virt-manager使用及KVM虚拟化平台网络模型介绍
- esxi 内核 linux,大娃套小娃系列-ESXI虚拟机安装Debian系统实现Docker容器
- 判断推理——类比推理
- 柯尼卡美能达Konica Minolta 7155 打印机驱动
- 上拉滑动拖出控件 scrolllayout
- 使用油猴脚本看视频的过程