2014-12-06 116 views
0

我可能是个小问题,但我敢问,请帮我回答这个问题。在MySQL中使用多个数据库查询对比单个数据库查询

我一直在开发一个PHP Mysql应用程序。此前,我曾经使用下列原则:通过检查每个输入

  • 如果成功的

    1. 验证HTML表单通过JavaScript在PHP
    2. 错误校验,通过一个单一的MySQL查询
    3. 更新数据库现在

    ,我下面另一种方法如下:

    1. 没有JavaScript验证,BU吨使用required属性中的形式,其中输入是必要
    2. 每个在PHP输入元件的
    3. 错误验证和同时更新数据库

    因此,在第二方法中,我使用的,我提出多种MySQL查询(大约30个查询)用于每一行更新。

    我知道,它可能不会导致最佳的性能,但,

    1. 它已经通过ATLEAST 3(如果不是更多)的因子减小的代码行的数目。
    2. 这是非常容易的开发,调试和协作
    3. 开发时间要少得多(我自己的估计,到5倍)

    我想在第二个方法你的想法,我目前正在使用我的应用程序。

  • +1

    如果你正在更新一个表格,我个人认为你的问题越少越好,但那是因为我是一个懒惰的人,这反映在我的编码中,因为我不想再做更多的事情比一次或两次。我可能是完全错误的,除了学习和开发以外,我从未接受任何认证,也没有深入过。为什么不尝试混合的方法 - 使用'require',但仍然构建1个查询? – Jhecht 2014-12-06 06:58:29

    回答

    0

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

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

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

    1

    我觉得这里的困惑是2分,

    1. 代码开发力度和可读性
    2. 性能

    一般来说,代码开发和可读性优先于性能。这种方法通常适用于小规模应用。由于小规模应用程序不会面临严重的性能问题。

    但是,当应用程序增长的大小,然后1查询与30查询将显示差异。想象一下,如果100-1000位用户使用您的应用程序并且使用您的第一种方法,那么您将启动100-1000个查询,但使用第二种方法,您将在数据库上激发3000-30000个查询。

    这可能会减慢整个应用程序。至于没有。查询成正比,

    1. 连接池限制
    2. DB锁定时间(1个查询将锁定行对于小时间x但30倍的查询将锁定一行30X时间)

    在最坏情况下,如果你的应用程序有其他形式,从DB读取的模块,那么这些查询将遭受锁定问题。

    为了获得更好的性能和可扩展性,更少没有。的更新查询应该是首选的,如果它们几乎没有编码开销。其他jQuery模块可用于验证,这也将减少编码工作量。