MySQL 相关总结

版本升级时的最大变动:

MySQL 4.0——4.1:原先字符串类的存储按照字节数设定上限;现在按照字符数设定,不过 LENGTH() 得到的查询结果还是字节数(查询字符数请用 LENGTH(CONVERT(' ' USING 'ucs2'))/2 方式获得)。

MySQL 4.1——5.0.3:原先 VARCHAR 和 CHAR 一样,字符数上限为 255;现在 VARCHAR 上限为 65532(设置时最大可以填写 65535,但实际上还是 65532)。VARCHAR 和 VARBINARY 字段中末尾的空格不再删除。

更多:http://database.51cto.com/art/200805/74726.htm


多用 EXPLAIN。

count(*) 的使用:
没 where:select count(*) 和 select count(col) 所消耗的查询时间相差无几;
有 where:select count(col) 所消耗的查询时间比 select count(*) 明显多出数量级的时间。

order 的优化:
有 order 没 where:要有 limit 和“order 字段索引”;
有 order 有 where:“where 各字段”部分或全部在 where 中使用“=”条件,这些字段加上“order 字段”后要正好对应一个组合索引。

和 PHP 搭配时的分工(双方服务器都无压力的理想情况):
在函数逻辑不复杂的情况下,使用 MySQL 内置函数,比如 NOW(),要比使用 PHP 同类函数稍快。