mysql 字段 选取 原则_MySQL字符串字段类型选择的一般规则

首先我们建立一张带有逗号分隔的字符串。 CREATE TABLE test(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),pname VARCHAR(20) NOT NULL,pnum VARCHAR(50) NOT NULL); 然后插入带有逗号分隔的测试数据 INSERT INTO test(pname,pnum) VALUES('产

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个 字节。对于表中某个字段中的内容进行字符串替换。 语法: UPDATE table_name SET field_name=replace(field_name, from_str, to_str); 示例: MariaDB [test]> show tables;+----------------+| Tables_in_test |+----------------+| test |+-------

所以问了兼容在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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值