使用多数据库查询与MySQL中的单个数据库查询相比

时间:2014-12-06 06:36:45

标签: javascript php mysql database performance

我可能是一个微不足道的问题,但我敢问,请帮我回答这个问题。

我一直在开发PHP Mysql应用程序。早些时候,我曾经使用以下原则:

  1. 通过Javascript验证HTML表单
  2. 通过检查每个输入
  3. 在PHP中进行错误验证
  4. 如果成功,请通过单个MySQL查询更新数据库
  5. 现在,我按照以下方法采用另一种方法:

    1. 没有Javascript验证,但在需要输入的表单中使用required属性
    2. 错误验证PHP中的每个输入元素并同时更新数据库
    3. 所以,在第二种方法中,我正在使用,我正在为每行更新进行多次MySQL查询(大约30个查询)。

      我知道,它可能不会带来最佳性能,但是,

      1. 它将代码行数减少了至少3倍(如果不是更多)。
      2. 开发,调试和协作更容易
      3. 开发时间要少得多(按照我自己的估计,减少5倍)
      4. 我希望您对第二种方法有所了解,我目前正在申请中使用。

2 个答案:

答案 0 :(得分:1)

我认为这里的困惑是2分,

  1. 代码开发工作和可读性
  2. 性能
  3. 通常,代码开发和可读性优先于性能。这种方法通常适用于小规模应用。由于小规模应用程序不会遇到严重的性能问题。

    但是当应用程序的大小增加时,1个查询与30个查询将显示差异。想象一下,如果100-1000用户使用您的应用程序,并且使用您的第一种方法,您将触发100-1000个查询,但使用第二种方法,您将在DB上触发3000-30000个查询。

    这会降低整个应用程序的速度。没有。查询与

    成正比
    1. 连接池限制
    2. 数据库锁定时间(1个查询将锁定行的小时间x但30个查询将锁定行30倍的时间)
    3. 在最坏的情况下,如果您的应用程序有其他表单,那么从DB读取的模块以及那些查询将遇到锁定问题。

      为了获得更高的性能和可扩展性,少了一点。如果更新查询的编码开销很小,则应该首选。其他jquery模块可用于验证,这也将减少编码工作量。

答案 1 :(得分:0)

你几乎回答了你自己的问题,我认为,你基本上是在说,我在一个十字路口,我可以选择执行30个查询的脚本,或者多做一些工作,可能是1个查询。

我认为这是不行的。使用发送的值构建查询语句会更有效。也是最佳实践,因为大多数情况下,您无法预测应用程序的增长方式。

我也喜欢html验证,尽管浏览器仍然以不同方式处理。由于我的大多数项目都涉及使用jQuery,我倾向于使用jquery.validate插件,这需要额外的几行来获得即时响应形式,这对于用户交互非常有用。当然,服务器端验证应该始终存在。