我们使用innodb,并有一个表格,将有数百万行。其中列将是varchar(32)
,其价值将经常改变。在成千上万行上更新这个varchar
将需要很长时间,所以我们试图将这个字段拆分到它自己的表中,然后不做更新,我们可以执行删除,然后进行批量插入使用文件中的加载数据。
看起来这会大大提高性能。我是否错过了一些东西?
有更简单的方法来提高更新性能吗?有没有人做过这样的事情?更新与插入
Q
更新与插入
0
A
回答
0
如果您可以根据独立参数选择要更新的行,实际上应该与您的建议一样(并且仍然保持一个理智的数据组织,因此更可取)。安静可能这比自己做得更快。
0
您可以创建适合更新语句的where子句的索引。
分裂它的想法可能会提高性能(我不确定),但只有当所有值一次改变时。当个体价值观发生变化时,这种方法比采用单一表格的方法要慢。
更快速的另一个先决条件是,您必须事先知道第二个表的键 - >值映射。如果您必须查看第一个表以决定如何在第二个表中存储值,那么您的速度也比使用一个表慢。
+0
我们将拥有关键值对。基本上我们做一个查询来查看我们需要什么id来获得值,然后我们离开并获取值(即不在sql中,只是一些外部源)。一旦我们获得所有的值,我们就拥有一大组ID /值对。我的想法是,如果我们为这个东西使用一个单独的表,那么我们可以做一个删除,其中id在(...)中,然后做一个ID /值对的批量插入。这避免了每个更新语句的索引查找。我们可以使用非常快速的加载数据。 – user1280851 2012-03-22 18:53:36
相关问题
- 1. 更新与插入性能
- 2. 插入更新
- 3. 蟒蛇插入并更新与psycopg2 tstzranges
- 4. 表格验证插入与更新
- 5. TSQL:更新与插入选择从
- 6. 更新插入的行与触发
- 7. 批量插入与重复键更新
- 8. 批量插入或更新与休眠?
- 9. SSIS:插入/更新
- 10. 更新插入msaccess
- 11. 更新插入HSQLDB
- 12. 插入+更新/ Upsert?
- 13. 异步插入&更新异步插入&更新:NoSql和SQL
- 14. 插入其他更新
- 15. SQL,更新和插入
- 16. 插入或更新混淆
- 17. 触发更新插入
- 18. SQL插入/更新问题
- 19. 插入和更新验证
- 20. 插入后更新GridView
- 21. 插入,替换/更新JDBC
- 22. SQL更新和插入
- 23. 更新/插入数据
- 24. 同时插入和更新
- 25. axapta表插入/更新
- 26. 更新并插入TSQL
- 27. iPhone:Sqlite更新或插入行
- 28. 插入/可更新的XML
- 29. Squeryl:KeyedEntity.id不更新在插入
- 30. 插入或更新SQLite中
我们将更新或插入的行将基于索引ID。我提议的方式根本没有查找,因为我们在插入前已经拥有了所有ID(请参阅其他帖子的评论)。我喜欢这种可能的解决方案,因为我注意到与插入相比,更新需要很长时间。 – user1280851 2012-03-22 18:58:44