编辑:我需要程序做更快的计算,更新过程需要是实时的(计算100.000到200.000条记录的时间约为0-5秒),这个过程将在多线程(大约2-8线程)中进行。
我将创建程序来更新数据库中的数据。如果我确实在表中插入数据,则将触发更新过程。更新过程的计算成本很高。这就是我的更新过程的想法:
哪一个计算速度更快,是以编程方式进行更新,还是使用触发器?
发布于 2014-02-28 13:13:45
最好使用TRIGGERS,并在DB端保持这种复杂性。这将帮助您保持代码的整洁。如果要从不同的文件执行INSERT,那么可能需要在所有这些文件中重写UPDATE逻辑。
如果将来需要更改“后插入”逻辑,则只需更新触发器,而不是更新代码。
发布于 2014-02-28 13:18:27
数据库服务器中的计算周期是一种稀缺资源。您可以拥有尽可能多的运行Java程序的服务器实例,并且随着应用程序的扩展(例如,添加用户),您可以将计算密集型操作分发给多个服务器。
如果在MySQL服务器上执行计算成本高昂的操作,则决定在中央计算机上执行所有这些操作。
此外,在我的经验中,单元测试和维护Java代码比对触发器/存储过程代码更容易。
话虽如此,MySQL的浮点数学操作(日志、乘法)利用服务器的数学指令集并具有合理的效率。
发布于 2014-02-28 13:15:16
触发器将更快,因为它将最接近数据工作,您将不必在数据库和程序层之间传输数据。触发器的问题是,每次插入都会触发触发器。您希望或希望只在插入了大量数据(即多个插入)后才进行计算。
https://stackoverflow.com/questions/22096093
复制相似问题