1. 数据库表设计优化

    有时为了提高数据库效率,可适当考虑反三范式,适当添加冗余字段,减少多表去关联查询

  2. 使用索引

    2.1 数据库表设计时要合理的去使用普通索引、主键索引、唯一索引、全文索引以及复合(组合)索引。

    2.2 何时创建索引:

      (1) 较频繁的作为查询条件的字段;

      (2) 唯一性太差的字段(如性别/状态字段等),即使我们频繁作为查询的条件,匀不适合创建索引;

      (3) 数据更新非常频繁的字段(如统计平台当前的在线人数字段/商品的销售数量字段等)是不适合创建索引。

    2.3 具体索引的使用请查看: http://yaowusheng.blog.51cto.com/11020801/1853754

    注意: 创建索引是需要开销的,会占用一定的磁盘空间; 索引数据牵移难度大;为了维护索引文件,会导致增、删、改操作变慢,请勿过度使用索引,合理使用索引至关重要。


   3.选择合适的MySQL存储引擎:

       3.1 myisam储存引擎
       如果表对事务要求不高,同时是以查询和添加为主的,考虑myisam储存引擎(如bbs的发帖表和回复表);
   3.2 innodb储存引擎
      对事务要求高,保存的数据都是重要的数据,建议使用innodb储存引擎(如账号表、订单表等重要的表);
   3.3 memory储存引擎
      数据变化频繁,不需要入库,同时又频繁的查询和修改,可考虑使用memory储存引擎(注意:插入的数据不会被持久化到磁盘空间,只是临时保存到了内存中,关闭了数据就会丢失);