MySQL如何确定VARCHAR大小问题
抛出一个问题,如果需要存字符串到MySQL数据库里面的一张表里的某个字段,如何确定字段的长度大小?
首先不建议使用TEXT
类型的,因为使用TEXT
会严重影响效率,最好的方式就是使用VARCHAR
并确定字段的最大长度。
我们可以先在表里定义一个字段rule_value
,并设置长度为255,然后输入最小的json
字符串进去:
使用MySQL的CHAR_LENGTH
函数,计算rule_value
的大小:
SELECT id,rule_type,rule_value,CHAR_LENGTH(rule_value) as rule_value_length,rule_mark FROM test_table WHERE rule_type = 'RANDOM_STR'
可以看到rule_value
的长度为74:
因为rule_value
的值是json
数组,所以数组里面的值会不定变大,这个时候,就需要我们去问产品确认,里面的数组最大有多少个?
经过询问,数组最大有10个,那么计算rule_value
的长度为:
74*10=740
也就是740个字符,我们可以把之前rule_value
的长度VARCHAR(255)
改为VARCHAR(740)
即可。
最后需要补充一点知识:
TEXT
最多存65535
个字符、MEDIUMTEXT
最多存放16777215
个字符、LONGTEXT
最多存放4294967295
个字符,不过一般都不建议使用;- 查看
MySQL
版本命令:select version()
; - 在
MySQL
版本4之前,按字节来计算,版本4之后按字符来计算; LENGTH()
返回以字节为单位的字符串的长度。CHAR_LENGTH()
返回以字符为单位的字符串的长度。
到此这篇关于MySQL如何确定VARCHAR大小问题的文章就介绍到这了,更多相关MySQL VARCHAR大小内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
MySQL数据库中varchar类型的数字比较大小的方法
创建测试表 -- ---------------------------- -- Table structure for check_test -- ---------------------------- DROP TABLE IF EXISTS `check_test`; CREATE TABLE `check_test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `current_price` varchar(10) NOT NULL, `price`
-
Mysql varchar大小长度问题介绍
4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字.字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节 Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同. 1.限制规则 字段的限制在字段定义的时候有以下规则: a) 存储限制 varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字
-
MySQL如何确定VARCHAR大小问题
抛出一个问题,如果需要存字符串到MySQL数据库里面的一张表里的某个字段,如何确定字段的长度大小? 首先不建议使用TEXT类型的,因为使用TEXT会严重影响效率,最好的方式就是使用VARCHAR并确定字段的最大长度. 我们可以先在表里定义一个字段rule_value,并设置长度为255,然后输入最小的json字符串进去: 使用MySQL的CHAR_LENGTH函数,计算rule_value的大小: SELECT id,rule_type,rule_value,CHAR_LENGTH(rule_v
-
MySQL动态修改varchar长度的方法
虽然这种情况不应该发生,通常像我们关系型数据库,我们应该是事先设计好,以后不能改动,但是由于之前工作的疏忽,其实说实话,也不仅仅是我个人的疏忽,主要是沟通上的原因,当然数据库毕竟是我设计的,所以,还是自我批评一下. 说一下情况:MySQL字段有个varchar值字段设置的太短了,设置了30个,(我依稀记得varchar是可扩展的,当然现实并不容忍我的依稀),所以我只能找一个方法在保证数据库数据不变的情况下,动态修改varchar字段的长度,找了一段时间,终于让我找到了. alter table
-
实例讲解MySQL统计库表大小
统计每个库每个表的大小是数据治理的其中最简单的一个要求,本文将从抽样统计结果及精确统计结果两方面来统计MySQL的每个库每个表的数据量情况. 1.统计预估数据量 mysql数据字典库information_schema里记录了统计的预估数据量(innodb引擎表不准确,MyISAM引擎表准确)及数据大小.索引大小及表碎片的大小等信息. 如果想了解每个库及表的大概数据量级,可以直接查information_schema.tables进行统计即可.例如: SELECT table_schema,ta
-
MySQL CHAR和VARCHAR该如何选择
VARCHAR 和 CHAR 类型 VARCHAR 和 CHAR 是两种主要的字符串类型,用于存储字符.不幸的是,由于实现的方式依赖于存储引擎,因此很难解释这些字符串在磁盘和内存中如何存储,除了除了常用的 InnoDB 和 MyISAM 外,假设你使用了其他存储引擎,应当仔细阅读存储引擎的文档. VARCHAR 存储可变长度的字符串,也是最常用的字符数据类型.相比固定长度的类型,VARCHAR 所需的存储空间更小,它会尽可能少地使用存储空间(例如,短的字符串占据的空间).对于 MyISAM 来
-
详解Mysql中日期比较大小的方法
假如有个表product有个字段add_time,它的数据类型为datetime,有人可能会这样写sql: 代码如下 select * from product where add_time = '2013-01-12' 对于这种语句,如果你存储的格式是YY-mm-dd是这样的,那么OK,如果你存储的格式是:2013-01-12 23:23:56这种格式你就悲剧了,这是你就可以使用DATE()函数用来返回日期的部分,所以这条sql应该如下处理: 代码如下 select * from produc
-
Mysql 查询数据库容量大小的方法步骤
查询所有数据库的总大小 方法如下: mysql> use information_schema; mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES; +-----------+ | data | +-----------+ | 3052.76MB | +-----------+ 1 row in set (0.02 sec) 统计一下所有库数据量 每张表数据量=AVG_ROW_L
-
MySQL CHAR和VARCHAR存储、读取时的差别
导读 你真的知道CHAR和VARCHAR类型在存储和读取时的区别吗? 还是先抛几条结论吧: 1.存储的时候,CHAR总是会补足空格后再存储,不管用户插入数据时尾部有没有包含空格. 2.存储的时候,VARCHAR不会先补足空格后再存储,但如果是用户在插入时特地加了空格那就会如实存储,而不会给删除. 3.读取数据时,CHAR总是会删除尾部空格(哪怕是写入时包含空格). 4.读取数据时,VARCHAR总是如实取出之前存入的值(如果存储时尾部包含空格,就会继续保留着,不会像CHAR那样删除尾部空格).
-
MySQL中字符串比较大小详解(日期字符串比较问题)
前言 数据库中在对于数字与非数字混合的字符串,在进行大小比较的时候,如果两字符串长度相等,那么两字符串就会比较相同位置的字符,比较时若字符是数字,则直接比较,若字符是非数字那么会转换为ascii码进行比较,若在某位置上已经有大小之分,那么就不会再进行比较. 如上所述,当字符串用于比较时间格式数据进行时间维度的比较时会出现问题.如以下sql进行查询时 select * FROM work_day_content as wdc WHERE wdc.work_day >= '2019-09-30 00
随机推荐
- angular.js指令中的controller、compile与link函数的不同之处
- JS实现倒计时(天数、时、分、秒)
- jquery实现简单合拢与展开网页面板的方法
- javascript中input中readonly和disabled区别介绍
- 批处理设置windows服务器的代码ThecSafe1.9.4第1/3页
- 一个很不错的PHP翻页类
- 将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
- js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
- php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
- javascript Error 对象 错误处理
- 浅谈Jquery核心函数
- BootStrap Table 分页后重新搜索问题的解决办法
- document.compatMode的CSS1compat使用介绍
- 浅析jquery的js图表组件highcharts
- node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
- Jquery on绑定的事件 触发多次实例代码
- 基于jQuery的表单填充实例
- jQuery链式操作实例分析
- 漏洞漫舞的飞骋
- PHP操作Memcache实例介绍