CakePhp:如何避免过多写入数据库以获得不断更新的值

时间:2015-12-24 10:51:43

标签: php mysql cakephp

我是PHP(以及CakePHP和Web开发)的新手,目前正在尝试构建停车管理应用程序。

简而言之,我有一个用停车位ID编制索引的表,它包含当前的占用数,即正在使用的插槽数。

当汽车进入停车场时,我想增加这个数字,反之亦然。当汽车离开时。

这是汽车进入停车场时我需要做的5-7件事之一。

问题是我在考虑(可能为时尚早)?在每个进入/退出时更新表(写入db)效率太低。

一个简单的C ++实现是将其维护为内存中的二维数组和寄存器信号处理程序,以便在二进制文件死时将数组写入db。

CakePHP有可能吗?在实施的早期阶段,我的效率问题是否合法?

请告知。

1 个答案:

答案 0 :(得分:0)

一般建议first make it work, then make it right, and, finally, make it fast

对于第3步,我建议查看以下因素:

  • 什么操作需要快速(在这种情况下快速意味着什么)? (不仅是SQL,更像是方法或服务)
  • 我是否符合给定的性能值? (例如,请求时间,CPU负载......)
  • 如何优化我需要的行为? (缓存,SQL优化,配置等)
  • 实现这一目标的最有效和最有效的方法是什么?是否支付(成本与利润)?

从技术上讲,我会考虑以下内容:

  • 增量/减量应该是原子的或在事务中以避免脏读
  • 考虑索引(通常)会降低插入速度(可能会更新)
  • 考虑更新首先搜索行(希望按索引),然后更改行
  • 沿着"类似日志"写它可能会更快表取决于SELECT的数量
  • 尝试从一开始就避免CakePHP中的递归请求
  • 可以轻松地与CakePHP一起设置redis缓存,并可能加快您的应用程序
  • 对于CakePHP优化,一般标记在这个问题上写了good blog post