数据库表设计优化:
有时为了提高数据库效率,可适当考虑反三范式,适当添加冗余字段,减少多表去关联查询。
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储存引擎(注意:插入的数据不会被持久化到磁盘空间,只是临时保存到了内存中,关闭了数据就会丢失);
本文出自 “姚午生的技术博客” 博客,请务必保留此出处http://yaowusheng.blog.51cto.com/11020801/1853695
原文地址:http://yaowusheng.blog.51cto.com/11020801/1853695