现在,我有一个脚本在python中执行以下操作:
infinite loop:
select 1 row from MySQL
works with row data
updates 1 row if needed in MySQL (<10% of the time)
一次选择和更新多行会加快我的脚本并处理更多行吗?如果是这样,我应该下拉多少行?我有一个512 MB RAM的小型VPS。一次1000行会不会太多?太少了?
新的脚本逻辑将是:
infinite loop:
select 1000 rows from MySQL
loop 1000 times:
work with row data
appends mysql statement to string if update is required
runs the single update statement containing 10-50 commands
新逻辑将有一个大的选择请求和一个大的更新请求。这会比许多小的选择和更新请求更好吗?
我找不到太多关于此的信息。非常感谢!
答案 0 :(得分:1)
关于绩效,不应做出任何假设。你应该衡量一些事情,以便做出决定。您应该定义性能目标,然后测试您的系统。我建议使用像mysqlslap或hammerdb这样的加载测试工具之王。如果您遇到问题,可以使用neor之类的 profiler 。
希望我帮忙!
答案 1 :(得分:1)
尝试使用负载测试,因为最终它取决于你想要测量的东西,但在我看来,一次获取更多行更有效,因为如果你获取表中最后一行并再次获取行这是第二个,然后你在表中循环两次,而如果你一次获取多行,那么你只需循环一次并获得所有行。
希望我帮助
答案 2 :(得分:0)
通常,您希望尽可能少地调用数据库。至于每次通话需要多少记录都取决于您的系统。
我的方法是把这个数字搞得一团糟,直到我满意为止。