Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePhp:如何避免为不断更新的值向数据库写入太多内容_Php_Mysql_Cakephp - Fatal编程技术网

CakePhp:如何避免为不断更新的值向数据库写入太多内容

CakePhp:如何避免为不断更新的值向数据库写入太多内容,php,mysql,cakephp,Php,Mysql,Cakephp,我不熟悉PHP(以及CakePHP和web开发),目前正在尝试构建一个停车场管理应用程序 简而言之,我有一个用停车位ID编制索引的表,它包含当前占用人数,即使用的车位数量 当一辆汽车进入停车场时,我想增加这个数字,当汽车离开时,反之亦然 当一辆车进入停车场时,这是我必须做的5-7件事之一 问题是,我认为(可能还为时过早)在每个入口/出口更新表(写入数据库)效率太低 一个普通的C++实现,是将它保持在内存二维数组和登记信号处理程序中,如果二进制文件死时,将数组写入DB。 这在CakePHP中可能吗

我不熟悉PHP(以及CakePHP和web开发),目前正在尝试构建一个停车场管理应用程序

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

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

当一辆车进入停车场时,这是我必须做的5-7件事之一

问题是,我认为(可能还为时过早)在每个入口/出口更新表(写入数据库)效率太低

一个普通的C++实现,是将它保持在内存二维数组和登记信号处理程序中,如果二进制文件死时,将数组写入DB。 这在CakePHP中可能吗?在实施的早期阶段,我对效率的担忧是否合理


请告知。

通常建议

对于第3步,我建议考虑以下因素:

  • 什么操作需要快速(在这种情况下什么是快速)?(不仅仅是SQL,更是一种方法或服务)
  • 我是否满足给定的性能值?(例如,请求时间、CPU负载…)
  • 如何在需要时优化行为?(缓存、SQL优化、配置等)
  • 实现这一目标的最有效方法是什么?它是否有回报(成本与利润)
从技术上讲,我会考虑以下内容:

  • 增量/减量应该是原子的或在事务中,以避免脏读
  • 考虑到索引(通常)会降低插入速度(并且可能在更新时)
  • 假设更新首先搜索行(希望是通过索引),然后更改行
  • 根据选择的数量,沿着“类似日志”的表进行写入可能会更快
  • 尝试从一开始就避免CakePHP中的递归请求
  • redis缓存可以很容易地与CakePHP一起设置,可能会加快应用程序的速度
  • 对于CakePHP优化,mark就这个问题写了一篇文章

通常建议

对于第3步,我建议考虑以下因素:

  • 什么操作需要快速(在这种情况下什么是快速)?(不仅仅是SQL,更是一种方法或服务)
  • 我是否满足给定的性能值?(例如,请求时间、CPU负载…)
  • 如何在需要时优化行为?(缓存、SQL优化、配置等)
  • 实现这一目标的最有效方法是什么?它是否有回报(成本与利润)
从技术上讲,我会考虑以下内容:

  • 增量/减量应该是原子的或在事务中,以避免脏读
  • 考虑到索引(通常)会降低插入速度(并且可能在更新时)
  • 假设更新首先搜索行(希望是通过索引),然后更改行
  • 根据选择的数量,沿着“类似日志”的表进行写入可能会更快
  • 尝试从一开始就避免CakePHP中的递归请求
  • redis缓存可以很容易地与CakePHP一起设置,可能会加快应用程序的速度
  • 对于CakePHP优化,mark就这个问题写了一篇文章

这个问题问得好,但我认为数据库是唯一安全的解决方案。是的,现在还为时过早,优化排在最后,而不是第一位@马克,谢谢。我同意。然而,我只是想确定,如果有一种方法,我现在就可以合并,而不是以后做一个大的设计更改。这个问题问得好,但我认为数据库是唯一安全的解决方案。是的,这还为时过早,优化排在最后,而不是第一位@马克,谢谢。我同意。然而,我只是想确定,如果有一种方式,我现在可以合并,而不是做一个大的设计更改后。