/*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>';
结论:
varchar(50)和varchar(100) 占用空间没有任何区别
char(40) 刚好是 char(20) 的一倍
然后测效率: