数据库的字符集和排序规则优先级:字段级别>表级别>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:排序规则的修改相关推荐

  1. mysql学习笔记——分组排序、分组求和

      在 MySQL8.0 版本之前,是没有类似 Oracle.SQLserver.postgresql 等数据库中像 "select 窗口函数 over (partition by 用于分组 ...

  2. MySQL学习笔记——数据库的创建、修改与删除

    目录 一.数据库的创建和管理 1.基础知识 1.1 数据储存过程 1.2 标识符的命名规则 1.3 MySQL中的数据类型: 2.创建和管理数据库 2.1 创建数据库 2.2 管理数据库 2.3 修改 ...

  3. mysql学习笔记之排序查询和函数(进阶四)

    USE myemployees; #进阶四:排序查询() /* 语法: select 查询列表 from 表 order by 排序列表[asc|desc]asc升序desc降序,可不写,默认升序 / ...

  4. MySQL学习笔记3:排序规则和排序规则的影响

    一.排序规则概念 在mysql数据库中,排序规则是依赖字符集编码的,他们在mysql中经常是捆绑的存在. 排序规则一般指对字符集中字符串之间的比较.排序制定的规则.一种字符集可以对应多种排序规则,但是 ...

  5. MySQL学习笔记 | 04 - MySQL数据库基本操作(增加、修改、删除、查看)

    MySQL学习笔记 | 01-为什么要使用数据库 MySQL学习笔记 | 02 - MySQL在Windows下的安装.配置.服务启动/停止.用户登录.查看版本号 MySQL学习笔记 | 03 - M ...

  6. MySQL学习笔记-约束以及修改数据表

    MySQL学习笔记-约束以及修改数据表 约束: 按功能划为: NOT NULL , PRIMARY KEY , UNIQUE KEY , DEFAULT , FOREIGN KEY 按数据列的数目划为 ...

  7. MySQL学习笔记-基础篇1

    MySQL 学习笔记–基础篇1 目录 MySQL 学习笔记--基础篇1 1. 数据库概述与MySQL安装 1.1 数据库概述 1.1.1 为什么要使用数据库 1.2 数据库与数据库管理系统 1.2.1 ...

  8. MySQL学习笔记(1)——高可用组复制

    MySQL学习笔记(1)--高可用组复制 积土成山,风雨兴焉.积水成渊,蛟龙生焉. 一.概念 组复制(MySQL Group Replication,MGR)是MySQL官方在MySQL 5.7.17 ...

  9. JavaEE 企业级分布式高级架构师(六)MySQL学习笔记(6)

    MySQL学习笔记 性能优化篇 性能优化的思路 慢查询日志 慢查询日志介绍 开启慢查询功能 演示一 演示二 分析慢查询日志 MySQL自带的mysqldumpslow 使用percona-toolki ...

最新文章

  1. java2实用教程--第二章基本数据类型与数组
  2. Geospark从Shapefile中加载RDD
  3. VTK:PolyData之ExtractOutsideSurface
  4. python字符串去头尾_悉尼大学某蒟蒻的Python学习笔记
  5. Qt中QLabel的背景图片设置问题
  6. eclipse快速定位到错误处
  7. Yslow-23条规则
  8. access的papersize命令_[access报表]报表中使用自定义纸张,及设置自定义纸张大小
  9. 浅谈css3长度单位rem,以及移动端布局技巧
  10. java标识符_Java标识符的简单介绍
  11. python ----json数据处理
  12. ADS1112|MS1112|16位AD转换芯片|国产兼容PIN-TO-PIN。兼容替代无需修改软硬件
  13. 韩顺平python教程视频_尚硅谷_韩顺平_Linux_2018Linux基础入门教程全集
  14. 一些基础知识:脑科学、神经科学、心理学
  15. KVM虚拟化技术之virt-manager使用及KVM虚拟化平台网络模型介绍
  16. esxi 内核 linux,大娃套小娃系列-ESXI虚拟机安装Debian系统实现Docker容器
  17. 判断推理——类比推理
  18. 柯尼卡美能达Konica Minolta 7155 打印机驱动
  19. 上拉滑动拖出控件 scrolllayout
  20. 使用油猴脚本看视频的过程

热门文章

  1. python selenium 用js删除 readonly属性
  2. 2022暑期杭电第九场
  3. 缓存雪崩、缓存击穿、缓存穿透
  4. OpenGL3.3鼠标拾取物体
  5. vue项目上线的步骤
  6. virtualbox的下载和安装详细过程
  7. DotNetCore.Cap分布式事务实现最终一致性
  8. Java数据结构之栈的数组实现
  9. 【每日知识】插入GIF动态图的方法
  10. Django中的CBV视图