`

MySQL字符串字段类型选择的一般规则

阅读更多

 

 

 

1.       经常变化的字段用char

2.       知道固定长度的用char

3.       尽量用varchar

4.       超过255字节的只能用varchar或者text

5.       能用varchar的地方不用text

 

 

VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定,最大有效长度是65,532字节

 

 

 

 

 

注:我测试了一下使用UTF8编码,varchar的最大长度为21854字节。

在mysql 5.0.45版本,数据库编码utf8下进行测试:varchar最长定义为21785。也就是说不论字母、数字、汉字,只能放21785个。
推想:varchar字节最大65535,utf8编码一个字符3个字节65535/3=21785。

 

 

 

 

   MySQL数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来 定)。
   在MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节的数据,起始位和结束位占去了3个 字节。

 所以问了兼容在4.1或以下版本可以把5.0大的varchar改为使用text。当然如果不考虑兼容性使用varchar代替text有效的减少数据库 文件的大小

 

 

 

 

Varchar 的类型不以空格填满,比如varchar(100),但它的值只是”n”,则它的值就是”n”
而char 不一样,比如char(100),它的值是”n”,而实际上它在数据库中是”n “(n后共有99个空格,就是把它填满为100个字节)。
由于 char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!

char会造成空间浪费,但是有速度优势;而varchar节省了空间,但是速度就不如char。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    mysql字符串连接函数

    mysql向表中某字段后追加一段字符串: update table_name set field=CONCAT(field,'',str) mysql 向表中某字段前加字符串 update table_name set field=CONCAT('str',field) 这个函数对你也许会有很大帮助哦!!

    mysql 计算字符串相似度

    输入2个中文字符串,计算2个字符串的相似度,用于相似度排序。

    Mysql字符串字段判断是否包含某个字符串的2种方法

    主要介绍了Mysql字符串字段判断是否包含某个字符串的2种方法,本文使用Like和find_in_set两种方法实现,需要的朋友可以参考下

    mysql数据库全部字段类型

    BINARY 类似于CHAR类型,但保存二进制字节字符串而不是非二进制字符串 BIT 位字段类型,范围为从1到64,默认为1 BLOB 最大长度为65,535(216–1)字节的BLOB列 BOOL 是TINYINT(1)的同义词。zero值被视为假。非zero值视...

    MySQL数据库:表的字段类型.pptx

    字符串(字符)类型。 数值类型 表的字段类型 MySQL支持所有标准SQL数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。 ...

    Mysql的longblob字段插入数据问题解决

    在使用mysql的过程中,有个问题就是mysql的优化,mysql中longblob字段在5.5版本中默认的为1M。 想改变这个问题,需要注意几点: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (2054817 > ...

    Mysql字符串截取及获取指定字符串中的数据

    小编童鞋最近接了一个新需求,需要在MySql的字段中截取一段字符串中的特定字符,下面小编把我的核心代码分享给大家,对mysql 字符串截取相关知识感兴趣的朋友一起看看吧

    mysql字符集转换

    mysql 字符集 转换

    从字符串中查找字符出现次数的方法和性能对比

    从字符串中查找字符出现次数的方法和性能对比

    mysql数据库全文多库多表查找,查询所有数据库中包含指定字符的数据。

    7、关键词支持字符串、日期、整形等等类型; 8、更多………… 使用如下命令即可查看使用帮助: sh search.sh sh search.sh -h sh search.sh --help 更多详细,可以参考发布的博文介绍和测试结果。

    批量替换 MySQL 指定字段中的字符串

    批量替换 MySQL 指定字段中的字符串是数据库应用中很常见的需求,但是有很多初学者在遇到这种需求时,通常都是用脚本来实现;其实,MySQL 内置的有批量替换语法,效率也会高很多;想了解具体方法,继续阅读本文吧 :)

    Mysql通过存储过程分割字符串为数组

    分割字符串为数组需要用到 三个mysql 的函数 : REVERSE(str) 返回颠倒字符顺序的字符串str。 SUBSTRING_INDEX(str,delim,count) 返回从字符串str的第count个出现的分隔符delim之后的子串。如果count是正数,返回...

    mysql查询字符串替换语句小结(数据库字符串替换)

    将ubk_vhost_list表中的字段userid中的字符...表的名字 field_name —— 字段名 from_str —— 需要替换的字符串 to_str —— 替换成的字符串 今天运行了一个查询 UPDATE ubk_vhost_list SET userid = replace (use

    mysql 获取字段中数字的函数

    自己写的一个获取字符串字段中数字的函数,已测试通过可用。

    Mysql字符串截取函数SUBSTRING的用法说明

    函数: 1、从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my_content_t 2、从右开始截取字符串 right(str, length) 说明:right...

    浅谈mysql中concat函数,mysql在字段前/后增加字符串

    MySQL中concat函数 使用方法: CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。...MySQL的concat函数可以连接一个或者多个字符串,如 mysql> select concat(’1

    mysql 字符串操作

    二三级表插入,参数是一字符串。 缺点:插入二三级表时,必须知道每张表的字段个数。

    串口数据采集并自动写入MySQL数据软件

    最主要核心功能是把串口上接收到的数据,以字符串数据形式直接写入MySQL数据库中的数据表的某一个字符型字段中。当计算机的某个COM口有字符串数据进来时,自动触发事先设置好的字符串截取代码,处理后直接写入MySQL...

Global site tag (gtag.js) - Google Analytics