性能类问题

数据表存储引擎如何选择?

推荐使用 InnoDB 表,InnoDB 在并发读写情况下好于 MyISAM,并 InnoDB支持事务,表不易损坏。

InnoDB 主键如何设置呢?

建议添加自增主键,递增与 InnoDB 本身数据的存储原理相契合,有利于数据的顺序存储及读取,更好的避免插入过程中的数据分页。

索引建立有什么建议吗?

索引不冗余不要建立过多索引,索引越多,插入性能越低,磁盘占用空间越多。我们推荐索引个数不要超过7个,并且不建议索引个数超过字段个数,特别是各种随机组合检索。

表建立有什么建议呢?

  • 字段及表建议要有 COMMENT 主要出于这样做更有利于对共同开发或接手开发的其它同学。建立表及字段的 COMMENT 是一个天然的功能说明书。
  • 字段设置为非 NULL 更有利于语句查询,规避一些容易出现的问题,InnoDB 本身对 NULL 的处理有别于其它正常数据或空数据。
  • 字段类型注意要点:

    • 不建议使用ENUM,SET:原因在于不利于扩展,扩展变更表结构时会导致表阻塞写操作。
    • VARCHAR长度的选择,以UTF8不超过2600字符,GBK不超过4000字符为最佳,在业务中推荐不过7000字符长度。
    • 不推荐使用BLOB,TEXT等大字段:主要原因在于大字段带来更多的IO,网络开销。