例如,如果您每次访问该页面时都有一个写入 10次(5ms
每个查询相对便宜)的网页到MySQL数据库。它是否与页面加载相同,只编写一个50ms
的查询?我基本上要问的是每秒查询真的很重要吗?它会更快地阻塞我的数据库吗?
如果我有一个非常大的数据库,那么每秒写入10000个廉价查询与1000个更昂贵的查询有什么不同吗?
答案 0 :(得分:2)
除了执行查询所花费的实际时间外,Rails应用程序还需要建立连接并关闭它的开销。
举例说明将一定数量的数据写入与10次写入进行比较,每次写入数据的数量为十分之一。
在前一种情况下,只需要一个数据库连接,这对连接池几乎没有压力。写入在50ms内完成,在此期间,其他9次写入也可以进入并执行。另一方面,在后一种情况下,来自池的10个连接必须仅用于相同的数据。由于建立连接的开销,10次写入中每次写入所需的时间可能大于5ms。
与其他任何事物一样,数据库可以从规模经济中受益。当然,有些情况下你只需要发生这么多连接。但是,所有其他因素都是相同的,如果您的业务逻辑可以使用一个大写而不是十个较小的写,那么您可能想要进行单次写操作。