【发布时间】:2013-09-19 06:24:06
【问题描述】:
我正在构建一个在 Web 门户上显示信息的应用程序。 我在一栋建筑物中有 X 个读卡器,这些读卡器与同一栋建筑物中的控制器通信。如果读卡器有任何刷卡行为,它们会将信息发送到控制器,然后控制器将其写入数据库。
一旦发生刷卡事件,我必须在网页上显示此读卡器信息。 所以我使用 perl Pcap 来捕获控制器和数据库之间的数据包,读取有效负载,解析它就像“如果第 n 位是这个打印这个,如果,打印这个”,我重复相同的 else if 处理门号,卡号,门打开/锁定状态等。
所以我的问题是,哪个更快?从 SQL 数据库获取最新数据以更新网页的程序或 else if 迭代,解析数据然后将其写入 XML 数据库并运行订阅脚本以更新网页?
【问题讨论】:
-
我的直觉是数据库效率较低,因为它必须进行大量磁盘访问。但唯一真正的判断方法是测量。架构的细节可能是一个重要因素。
-
如果您使用 pcap 方法,您可能需要查看用于编写 tcpdump/wireshark 解码器的库,因此您不必自己实现所有 if/then 内容。跨度>
-
您有速度问题吗?您是否有某种必须满足的最低标准?在没有任何类型的测量或任何类型的目标的情况下担心速度是盲目的。获得一个可行的解决方案,然后如果它太慢,请考虑优化它。
-
我几乎可以向您保证,与检索整个数据集并实现相同的搜索和选择相比,使用 SQL 查询(除非您的查询中存在复杂和格式错误的内容)可以获得更好的性能程序中的逻辑。数据库针对这些类型的操作进行了优化,并且比任何编程语言都快得多,尤其是像 Perl 这样的解释型语言。
-
@AndyLester 我的应用程序已完成并正在运行。该应用程序是由其他人启动的,他们使用 IF-MAP(IF-MAP.org) 作为元数据数据库来存储所有数据。所以我想知道哪种方法可以提供更好的性能。
标签: sql database performance perl xml-parsing