http://blog.csdn.net/cangchen/article/details/45673223
马克
一 字段属性
1 varchar与text区别在mysql5之后不大,存储原理相同,但varchar允许默认值,text必须默认为null,最大都是65535字节。由于可能涉及到索引模糊‘x%’,null会导致索引禁用,所以还是尽量用varchar;
2 char指定长度后会将储存后未满的尾部填满空格,取出后需要去除空格,在长度确定(如邮编)时尽量使用char;
二 子查询
1 使用join代替子查询(in);in会导致创建临时表,两个表逐个全部对应;join不用创建临时表,效率更高
2 尽量使用exsit()代替in;前者结果只有true、false;前者用于判断单个结果的条件,后者用于在结果集中判断;
三 union拼合结果集,暂时不知道哪里用得到
四 数据库也有事务,但事务是不是应该都由后台控制?其实后台的事务也有些混乱;数据库的事务会锁表
五 锁定表lock table inventory write ..... unlock tables待研究
六 条件不要类型转换,where num=1不要写where num='1'
再补个随机排序的优化
http://www.piaoyi.org/php/MySQL-Order-By-Rand.html?spm=5176.7741684.2.3.g7kDyh