代码之家  ›  专栏  ›  技术社区  ›  JBB

mysql“删除数据库”需要时间-为什么?

  •  11
  • JBB  · 技术社区  · 16 年前

    加分:如果我们使用“A”,将数据上传到“B”,然后切换到使用“B”,我们如何能更快地做到这一点?删除数据库并不是一个人通常必须一直做的事情,所以这有点不合常规。

    3 回复  |  直到 16 年前
        1
  •  13
  •   Community CDub    8 年前

    所以我不确定 Matt Rogish's answer 这将有100%的帮助。

    可以打开其他表。

    这是我的一位同事在这里描述的: http://www.mysqlperformanceblog.com/2009/06/16/slow-drop-table/

    一个优秀的影响减少策略是使用像XFS这样的文件系统。

        2
  •  10
  •   Matt Rogish    16 年前

    斯卡夫曼事件之后:

    innodb_file_per_table = 1
    

    http://mysqldba.blogspot.com/2006/12/innodbfilepertable.html )

    这将为数据库提供专用的文件存储,并将其从共享池中取出。然后,它会让您做一些有趣的事情,比如将表/索引放在不同的物理磁盘上,以进一步分割I/O并提高性能。

    注意这不会改变现有的表;你得努力把它们放进他们自己的档案里( http://capttofu.livejournal.com/11791.html

        3
  •  6
  •   skaffman    16 年前

    默认情况下,给定mysql服务器安装中的所有innodb数据库都使用相同的数据文件物理池,因此可以想象“删除数据库a”可能会影响数据库B。由于“删除数据库”可能会涉及innodb数据文件的重调整,因此可以想象这是一个阻塞操作,要么是因为操作的强度,要么是出于设计。

    但是,我认为您可以让每个数据库使用不同的物理文件,尽管我自己没有尝试过,所以您必须自己找出具体细节。否则,您可能需要在同一台机器上并排使用两个不同的mysql安装,这是完全可行的。

    推荐文章