【问题标题】:What is the easiest way to move data from one database to another backup database using SQLalchemy?使用 SQLalchemy 将数据从一个数据库移动到另一个备份数据库的最简单方法是什么?
【发布时间】:2011-09-04 11:38:44
【问题描述】:

我对 SQLalchemy 比较陌生,已经完成了基本的数据库创建、插入、更新和删除。到目前为止,我发现它使用起来非常简单。我的问题是:

我想将记录从一个数据库移动到另一个备份数据库。在 SQLalchemy 中执行此操作的最简单方法是什么?

【问题讨论】:

  • 也许我需要解释更多。我正在运行 python 脚本,这些脚本使用给它的数据创建数据库、插入和更新记录。我想要做的是将已完成(填充了所需数据)的记录移动到另一个数据库以维护一个小的当前数据库。这将由进程完成,而不是由手动完成。
  • Q-1:您的数据库由多少个表组成? Q-2:你有一些open和一些completed数据,你想movecompleted数据到另一个归档数据库。对吗?
  • 我有一个数据库(“data.db”),其中有一个创建记录的表。随着时间的推移,这些记录充满了结果。我对 sql 了解不多,但我的想法是我不希望数据库变得又大又笨重,所以一旦记录完成,这些记录就会移动到另一个数据库(“另一个 Database.db”)。我认为具有大量记录的数据库可能会变慢。如果将它移动到同一数据库中的另一个表也一样好,请告诉我。欢迎任何建议。
  • 我这里写了一个函数来复制一个表:stackoverflow.com/a/21677971/1675586

标签: python sqlalchemy


【解决方案1】:

您只需直接访问数据库实用程序并将其备份到那里即可。与 SQLAlchemy 无关

【讨论】:

    【解决方案2】:

    我不希望数据库变得又大又笨重

    数据库扩容是个大话题,但它仍然适合优化领域,可以总结为三个简单的规则:

    1. 不要
    2. 不要
    3. (仅限专家)个人资料优先!

    这对您的问题意味着,您可能不应该优化数据的大小,除非您有一个好主意

    • 您真正拥有多少数据?
    • 您定期对该数据执行哪些查询,哪些查询
    • 您的数据库本身可以提供哪些帮助?

    乍一看似乎有大量数据,但通常无需担心。一个好的经验法则是,如果您的数据集适合内存,那么您就没有大数据集。

    即使您确实有一个大数据集,但通常只有一小部分相关,(未“完成”的行)真正影响查询。您可以通过创建正确的索引组合来使其正常工作,以便您的数据库可以轻松找到并操作您实际查询的行。

    这可能是您将数据库用于错误的事情。你所描述的,一些数据进来,一直存在,直到它被处理,然后被归档,听起来很像 queue。持久和分布式队列广泛可用(查看 celery 了解基于队列构建的 python 框架),可能更适合您尝试解决的问题。

    【讨论】:

    • 感谢您的详细回答。我认为我最好的选择是“阅读”。我使用 SQL 是因为我对它有少量经验。我会检查芹菜,因为老实说我不知道​​它是什么。你的回复让我有很多事情要做。
    猜你喜欢
    • 2012-08-27
    • 1970-01-01
    • 2012-11-27
    相关资源
    最近更新 更多