首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

修改MySQL varchar类型字段的排序规则

记录一个在工作中遇到的问题,也不算是问题,为的是找一种简便的方法批量修改数据表字段的排序规则,在MySQL中叫collation,常常和编码CHARACTER一起出现的。...collation有三种级别,分辨是数据库级别,数据表级别和字段级别。...网上搜到的解决办法,都提到了修改数据表级别collation排序规则。...但是我遇到的场景是数据表级别已经是utf8_unicode_ci,而字段级别是utf8_general_ci,(这里我们关心的字段类型是varchar)。...由于需要修改的字段太多了,手工修改肯定是费时费力的。自然也想到了用脚本的方式批量修改,但是发现这种通过查找MySQL信息表、过滤、拼接生成批量修改的语句太好用了,而且还能做到针对varchar类型。

4.7K30

MySQL online DDL 更改Varchar的字段长度

背景 修改Varchar 的大小的时候。不用锁表,就可以进行操作DDL。这个还得具体查看版本,还有具体情况。下来我们来看一下INnoDB中的Online DDL各个操作请求。...在5.6 里面执行DDL 根本没有单独操作Varchar这个字段类型。...所以说在5.6中执行varchar的更改还是会锁表,copy数据 还有就是就算是5.7 不锁表还是有条件的 扩展VARCHAR列大小 ALTER TABLE tbl_name CHANGE...注意 一个的字节长度VARCHAR列是依赖于字符集的字节长度 。 减少VARCHAR使用就地尺寸ALTER TABLE不被支持。减小VARCHAR 大小需要表副本(ALGORITHM=COPY)。...总结 在数据量很大的时候,varchar通过Online DDL做到快速进行更改字段长度。但是前提条件就是不会进行锁表和copy数据的过程。 这个前提条件就是数据库的支持5.7及5.7以上。

6.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL修改表的字段

    MySQL修改表的字段 MySQL 修改表字段的方法有两种: ALTER TABLE MODIFY COLUMN。...其语法如下: ALTER TABLE 表名 MODIFY COLUMN 字段名 字段类型; 其中,表名 表示要修改的表名,字段名 表示要修改的字段名,字段类型 表示修改后的字段类型。...例如,修改表 users 的字段 username 的类型为 VARCHAR(50),可以使用以下 SQL 语句: ALTER TABLE users MODIFY COLUMN username VARCHAR...其语法如下: ALTER TABLE 表名 MODIFY COLUMN 字段名 字段类型 [属性]; 其中,表名 表示要修改的表名,字段名 表示要修改的字段名,字段类型 表示修改后的字段类型,属性 表示修改后的字段属性...例如,将表 users 中的字段 age 的数据类型修改为 INT,并设置默认值为 0,可以使用以下 SQL 语句: ALTER TABLE users MODIFY COLUMN age INT DEFAULT

    5.5K10

    在MySQL中使用VARCHAR字段进行日期筛选

    在这篇文章中,我将为你解析如何在MySQL数据库中,对VARCHAR类型的日期字段进行筛选。这是一个在数据库设计中经常遇到的问题,尤其是当日期被保存为字符串格式时。...你是否也在搜索“MySQL VARCHAR日期筛选”、“如何在MySQL中筛选字符串日期”等关键词?不用再找了,这里有你想要的答案! 引言 在数据库设计中,选择合适的字段类型非常重要。...正确筛选VARCHAR日期字段的方法 ️ 为了正确筛选VARCHAR日期字段,我们可以使用MySQL的 STR_TO_DATE 函数: -- 考虑日期和时间 SELECT * FROM your_table_name...总结 虽然使用VARCHAR字段来存储日期和时间提供了灵活性,但它也带来了筛选数据的挑战。幸运的是,通过使用MySQL的内置函数,我们可以有效地解决这个问题。...希望这篇文章帮助你解决了在MySQL中筛选VARCHAR日期字段的问题! 参考资料 MySQL官方文档 - STR_TO_DATE函数: 链接 日期和时间的存储选择: 链接

    23510

    MySQL设计表规范

    规范总结 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用 MySQL 保留关键字【设计表后逐一排查】 所有表必须使用 Innodb 存储引擎,数据库和表的字符集统一使用...UTF8 所有表和字段都需要添加注释 禁止在数据库中存储图片,文件等大的二进制数据 【通常存储于文件服务器,数据库只存储文件地址信息】 优先选择符合存储需要的最小的数据类型【能用整型就不要用字符串...所有表和字段都需要添加注释 使用 comment 从句添加表和列的备注,从一开始就进行数据字典的维护 /*表: user_info*/------------------ /*列信息*/-------...禁止在数据库中存储图片,文件等大的二进制数据 通常文件很大,会短时间内造成数据量快速增长,数据库进行数据库读取时,通常会进行大量的随机 IO 操作,文件很大时,IO 操作很耗时。...通常存储于文件服务器,数据库只存储文件地址信息 数据库字段设计规范 1.

    1.5K10

    mysql表设计规范

    命名规范表名、字段名必须使用小写字母或数字,不使用英文缩写长一点没关系,最好能让别的开发见名知意主键索引名:pk字段名 唯一索引名:uk字段名 普通索引名: jdx_字段名选择合适的字段类型尽可能选择存储空间小的字段类型...存储的字符串长度几乎相等,使用char定长字符串类型varchar可变长度的字符串,长度不要超过5000如果存储的值太大,将字段类型修改为text,同时单独一张表,用主键与之对应选择合适的字段长度优化数据的存储空间...优先考虑逻辑删除,而不是物理删除物理删除数据恢复困难物理删除会使主键不再连续核心业务表的数据不建议做物理删除每个表都需要的通用字段不一样的通用字段的英文不一样叫法,但是都是规范中建议的id...20个,表的字段过多,表中保存的数据可能会很大,查询的效率会降低。...,一般要加索引单表的索引不超过5个区分度不高的字段,不添加索引(性别)避免索引失效的情况(mysql的内置函数)索引过多,选用联合索引优化不使用外键关联使用外键存在性能问题、并发死锁问题、使用起来不方便等

    25230

    小白学习MySQL - varchar类型字段为什么经常定义成255?

    很多时候我们看到一些表字符串类型的字段定义为varchar(255),开始以为varchar只能定义为255这个长度值,其实不然。...官方文档所说,varchar有效的最大长度取决于行的容量,以及用的字符集,整行的所有列的定义长度不能超过65535字节(bytes),text、blob等大字段类型除外, P.S. https://dev.mysql.com...一般情况下,我们用的是InnoDB引擎,utf8则是常用字符集,因此varchar类型字段定义为255比较合适。...但实际上,varchar(255)并不是最优的字符定义长度,究竟定成多少,还是要根据实际需求来决定,例如这个字段我就不需要创建索引,定义超过255,是可以的,只能说255是常规情况下较少出错的一个值。...小白学习MySQL, 《小白学习MySQL - 变通创建索引的案例一则》 《小白学习MySQL - “投机取巧”统计表的记录数》 《小白学习MySQL - 一次慢SQL的定位》 《小白学习MySQL -

    3.2K10

    小白学习MySQL - varchar类型字段为什么经常定义成255?

    很多时候我们看到一些表字符串类型的字段定义为varchar(255),开始以为varchar只能定义为255这个长度值,其实不然。...官方文档所说,varchar有效的最大长度取决于行的容量,以及用的字符集,整行的所有列的定义长度不能超过65535字节(bytes),text、blob等大字段类型除外, P.S. https://dev.mysql.com.../doc/refman/5.7/en/char.html 《小白学习MySQL - 变通创建索引的案例一则》提到了, InnoDB,如果需要建索引,就不能超过767bytes,utf8编码,255*3...一般情况下,我们用的是InnoDB引擎,utf8则是常用字符集,因此varchar类型字段定义为255比较合适。...但实际上,varchar(255)并不是最优的字符定义长度,究竟定成多少,还是要根据实际需求来决定,例如这个字段我就不需要创建索引,定义超过255,是可以的,只能说255是常规情况下较少出错的一个值。

    1.2K20

    Mysql千万级大表添加字段锁表?

    MySQL 大表数据添加新字段 有时候我们在测试环境给一个表添加字段,但是在线上环境添加一个字段,却极其的慢。...原因是线上的数据库一般会存有大量的数据(百万级,千万级),基本的添加字段方式在线上数据库已经不太合适了。...> alter table user add column flag tinyint(1) default 0; 基本添加方式,大量数据的表不推荐。...,导致新表数据流失不完整 总结 生产环境MySQL添加或修改字段主要通过如下四种方式进行,实际使用中还有很多注意事项 直接添加 如果该表读写不频繁,数据量较小(通常1G以内或百万以内),直接添加即可(可以了解一下...,切换后再将其他几个节点上添加字段 将现有MySQL版本5.7升级到8.0.12之后的版本 相关文章 Mysql事务 Mysql中的索引 Mysql通过binlog恢复数据

    10.7K30

    mysql已存在的表增加自增字段

    需求: 已有的mysql数据表,希望增加一个自增的字段,并设置新数据的初始值。 实际上不复杂,只是做个备忘。...测试表 CREATE TABLE `t_abc` ( `name` varchar(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 测试数据...: INSERT INTO `t_abc` (`name`) VALUES ('mike'), ('tom'), ('jack'); 添加自增字段并设置新数据的起始值 /*增加一个自增主键字段,...,但值为空*/ /*执行这一条,它会自动为已存在的数据的自增字段赋初值,从1开始,同时将后续新增的数据从100开始*/ alter table t_abc auto_increment=100; 修改已有数据初始值...1开始的初始值,其实隐含的设置当前表自增字段从1开始*/ alter table t_abc auto_increment; /*将所有数据增加10000*/ update t_abc set id=

    11.2K10

    MySQL 使用规范 —— 如何建好字段和索引

    这包括;库表创建规范、字段的创建规范、索引的创建规范以及SQL使用的相关规范,通过这些内容的讲解,让读者更好使用 MySQL 数据库,创建出符合规范的表和字段以及建出合适的索引。...包括;表的引擎、命名约束、字段长度、金额类型、更新时间、索引字段、组合索引等内容,方便大家学习以后,可以基于这些字段的规范演示讲解,在自己创建库表的时候有个参考对照,尽可能创建出性能更佳的库表和索引。...二、库表规范 为了能让读者更加清晰地看到这些相关规范都是如何体现的,小傅哥这里准备了个大图,把库表字段和规范全部整合在一起,方便学习使用。...如下; 如上所列规范包括:建表相关规范、字段相关规范、索引相关规范、使用相关规范。 1. 建表相关规范 库名、表名、字段名,使用小写和下划线 _ 分割 库名、表名、字段名,不超过12个字符。...索引相关规范 要求有自增ID作为主键,不要使用随机性较强的 order_id 作为主键,会导致innodb内部page分裂和大量随机I/O,性能下降。

    1K30

    MySQL中 如何查询表名中包含某字段的表

    ' and table_type='base table' and table_name like '%_copy'; information_schema 是MySQL系统自带的数据库,提供了对数据库元数据的访问...information_schema.tables where table_type=’base table’ and table_name like ‘%_copy’; 在Informix数据库中,如何查询表名中包含某字段的表...select * from systables where tabname like 'saa%' 此法只对Informix数据库有用 查询指定数据库中指定表的所有字段名column_name select...’ group by table_schema; mysql中查询到包含该字段的所有表名 SELECT TABLE_NAME FROM information_schema.COLUMNS WHERE...COLUMN_NAME='字段名' 如:查询包含status 字段的数据表名 select table_name from information_schema.columns where column_name

    12.7K40

    MySQL 高性能表设计规范

    相关文章: MySQL高性能表设计规范:http://www.jianshu.com/p/f797bbe11d76 MySQL EXPLAIN详解:http://www.jianshu.com/p/ea3fc71fdc45...255 适合:存储很短的字符串,或者所有值接近同一个长度;经常变更 慷慨是不明智的 使用VARCHAR(5)和VARCHAR(200)存储'hello'的空间开销是一样的。...单独的表也能使用更有效的索引策略。 混用范式化和反范式化 在实际应用中经常需要混用,可能使用部分范式化的 schema 、 缓存表,以及其他技巧。 表适当增加冗余字段,如性能优先,但会增加复杂度。...,即数据表不能有沉余字段; 备注:必须先满足第二范式; 2.表字段少⽽精 I/O高效 字段分开维护简单 单表1G体积 500W⾏行评估 单⾏行不超过200Byte 单表不超过50...个INT字段 单表不超过20个CHAR(10)字段 建议单表字段数控制在20个以内 拆分TEXT/BLOB,TEXT类型处理性能远低于VARCHAR,强制生成硬盘临时表浪费更多空间。

    80420
    领券