/*varchar(255)和varchar(256) 和 varchar(50)和varchar(100) 的区别*/

	$sql="create table char20(
		title char(20)
	) ENGINE=MyISAM DEFAULT CHARSET=utf8";
	mysqli_real_query($con,$sql);

	$sql="create table char40(
		title char(40)
	) ENGINE=MyISAM DEFAULT CHARSET=utf8";
	mysqli_real_query($con,$sql);

	$sql="create table varchar50(
		title varchar(50)
	) ENGINE=MyISAM DEFAULT CHARSET=utf8";
	mysqli_real_query($con,$sql);

	$sql="create table varchar100(
		title varchar(100)
	) ENGINE=MyISAM DEFAULT CHARSET=utf8";
	mysqli_real_query($con,$sql);

	$sql="create table varchar255(
		title varchar(255)
	) ENGINE=MyISAM DEFAULT CHARSET=utf8";
	mysqli_real_query($con,$sql);

	$sql="create table varchar256(
		title varchar(256)
	) ENGINE=MyISAM DEFAULT CHARSET=utf8";
	mysqli_real_query($con,$sql);


//每个表插入百万数据
mysqli_autocommit($con,FALSE); //关闭自动提交
for ($i=1; $i<=50000; $i++){
	$t=time();
	mysqli_real_query($con,"insert into char20(title)values('{$t}')");
	mysqli_real_query($con,"insert into char40(title)values('{$t}')");
	mysqli_real_query($con,"insert into varchar50(title)values('{$t}')");
	mysqli_real_query($con,"insert into varchar100(title)values('{$t}')");
	mysqli_real_query($con,"insert into varchar255(title)values('{$t}')");
	mysqli_real_query($con,"insert into varchar256(title)values('{$t}')");
}
mysqli_commit($con); // 提交事务
echo "插入完毕!";

echo '<script type="text/javascript">window.location.href="mysqlceshi.php";</script>';

image.png

结论: 

varchar(50)和varchar(100)  占用空间没有任何区别

char(40) 刚好是 char(20) 的一倍

然后测效率:



相关推荐

mysql效率研究():int(5) int(10) int(11) 的区别

/*int(5)与 int(10) 与 int(11) 的区别*/ //首先创建 三个表 分别是 in5,in10,in11 都只有一个字段 $sql="create table

zblog mysql数据库访问速度优化 100万篇文章秒开不卡 php版

zblog php数据库访问速度优化后,一百万篇文章秒开不卡.(实际上再加一百万也没问题,懒得测试了)最新编辑:升级后 最新测试 300万毫无压力! 并且已全面支持各种主题!详细请看 https://

mysql sqlite 删除旧数据 只保留最新的100

完整语句:delete from _sql执行记录 where id in (select id from _sql执行记录 order by id desc limit 100,100000)del

c++ char与wchar_t的区别 windowsaPI函数后面带a和W的区别

C++基本数据类型中表示字符的有两种: char、wchar_t。char叫多字节字符,一个char占1个字节,之所以叫多字节字符是因为它表示一个英文字符时是一个字节,而中文字符时是多个字节。wcha

20亿行测试 sqlite最多可以容纳多少行数据 以及插入速度 每个文件最大多大?

据说 数据库文件最大支持 281 T每个数据库由一个或多个数据页组成,一个数据库内的所有数据页大小都相同,但是不同的数据库可以使用不同的数据页大小,范围从 512 到 65536 字节。从 sqlit

mysql视图:view(优化查询速度必备)

用法:创建的视图create view 视图表名称 as 查询语句;例如:create view 视图表名称 as select * from class where id>2;select *

mysql查询字段忽略大小写

//问题:mysql的字符集改成严格区分大小写后,模糊搜索的时候不能忽略大小写。//解决方案:把数据库字段转为小写,like后的参数也都转为小写 SELECT *FROM 表名 LOWER(字段

mysql sqlite取表内最大id语句 取最新插入id 取表行数

取最大ID方法一:select MAX(id) from 表名 方法二:select * from sqlite_sequence where name='表名' 以上两种方法 500

mysql环境变量设置(win7系统)

在cmd直接执行mysql命令时候显示: 'mysql' 不是内部或外部命令,也不是可运行的程序 解决方法右键点击“计算机”-“属性”-“高级系统设置”-“环境变量”-“系统 变量”

mysql数据类型

mysql创建表语句格式:create table tablename(列1 int unsigned,//unsigned意思是无符号。不为负。列2 列类型 列属性 默认值,列3 列类型