谨记红字:

1. 表中谨防太多列:

  MySQL 的存储引擎API 工作时需要在服务器层和存储引擎层之间通过行缓冲格式拷贝数据,然后在服务器层将缓冲内容解码成各个列。从行缓冲中将编码过的列转换成行数据结构的操作代价是非常高的。MyISAM 的定长行结构实际上与服务器层的行结构正好匹配,所以不需要转换。然而,MyISAM 的变长行结构和InnoDB 的行结构则总是需要转换。转换的代价依赖于列的数量。当我们研究一个CPU 占用非常高的案例时,发现客户使用了非常宽的表(数千个字段),然而只有一小部分列会实际用到,这时转换的代价就非常高。如果计划使用数千个字段,必须意识到服务器的性能运行特征会有一些不同。

2. 太多关联:

  所谓的“实体- 属性- 值”(EAV)设计模式是一个常见的糟糕设计模式,尤其是在MySQL 下不能靠谱地工作。MySQL 限制了每个关联操作最多只能有61 张表,但是EAV 数据库需要许多自关联。我们见过不少EAV 数据库最后超过了这个限制。事实上在许多关联少于61 张表的情况下,解析和优化查询的代价也会成为MySQL的问题。一个粗略的经验法则,如果希望查询执行得快速且并发性好,单个查询最好在12 个表以内做关联。

3. 全能的枚举:

  

最新文章

  1. Coursera-Getting and Cleaning Data-Week3-dplyr+tidyr+lubridate的组合拳
  2. su su- sudo的区别
  3. Qt 控件随窗口缩放
  4. css优先级和层叠
  5. AJAX创建表格,删除数据
  6. 利用dispatch_once创建单例
  7. 8天学通MongoDB——第四天 索引操作
  8. powerdesigner简单使用
  9. Java通过axis调用.NET WebService
  10. 2014年TI杯大学生电子设计竞赛地区赛使用仪器及器件、设备
  11. POJ2503-Babelfish-二分
  12. FCC(ES6写法) Map the Debris
  13. day4——无重复字符的最长子串
  14. For in + 定时器
  15. IntelliJ IDEA使用教程(简介)
  16. Educational Codeforces Round 2
  17. Caddy – 方便够用的 HTTPS server 新手教程
  18. sofa graphql 2 rest api框架
  19. springMvc基于注解登录拦截器
  20. windows8中visual studio 2010 编译boost1.57库

热门文章

  1. linux在线书籍
  2. IO流框架
  3. java增强型for循环
  4. unittest(22)- p2p项目实战(7)-do_mysql
  5. 吴裕雄--天生自然 R语言开发学习:时间序列
  6. 流量全球第4的Reddit到底是一个怎样的网站?
  7. python 堡垒机讲解及实例
  8. DZNEmptyDataSet的使用
  9. 安卓权威编程指南-笔记(第23章 HTTP与后台任务)
  10. C语言职工信息管理系统