【问题标题】:Symfony2 doctrine:schema:update extremely slowSymfony2 学说:模式:更新极慢
【发布时间】:2020-03-01 18:19:48
【问题描述】:

所以在我的工作中,我作为一名软件开发人员从事 Symfony2 项目。我们遇到了 schema:update 的性能问题,--dump-sql 需要 10 分钟,--force 需要 1 小时(是的,1 小时,您没看错)才能完成。 我们的开发环境可能不是最好的,但仍然如此。 代码在我的电脑上,在 Win7 64 上(显然本地使用 PHP 5.6 / apache 2.4) 数据库是远程的,在其他地方的数据中心,它是 Oracle 12c 我在网上到处都看过,每个人都有“慢”模式:更新问题正在谈论大约 30 秒,所以,甚至没有关闭 ^^

有没有人遇到过如此疯狂的延迟?

再次感谢您,我很乐意提供任何信息。

干杯!

【问题讨论】:

  • 尝试调试您与数据库的连接。可能是连接本身很慢。您能否告诉我们您确切的 symfony 和教义版本(位于 composer.json)以及数据库的大小?
  • 顺便说一句,你真的应该考虑在你的生产服务器上使用DoctrineMigrationsBundle,否则你可能会使用doctrine:schema:update --force来结束丢失数据。
  • 你在生产中使用doctrine:schema:update --force 吗??
  • 感谢您的宝贵时间 :) 不,这不是生产环境,它是我们的开发数据库 ^^ 以下是您要求的信息:num rows = 86537, db size = 40 Mo, 学说版本= 2.4.8,symfony 版本 = 2.7.7
  • 答案已更新...应该会加快一点,但我认为瓶颈是与数据中心的连接。

标签: oracle performance symfony doctrine schema


【解决方案1】:

在开发时,最好从一个新的数据库和设备开始,所以删除并重新创建您的数据库:

php app/console doctrine:database:drop
php app/console doctrine:database:create --if-not-exists --env=dev
php app/console doctrine:schema:create --env=dev

[编辑 2020/03]

我现在使用 Makefile 来完成所有这些开发任务:

load-fixtures: ## Build the db, control the schema validity, load fixtures and check the migration status
    $(SYMFONY) doctrine:cache:clear-metadata
    $(SYMFONY) doctrine:database:create --if-not-exists
    $(SYMFONY) doctrine:schema:drop --force
    $(SYMFONY) doctrine:schema:create
    $(SYMFONY) doctrine:schema:validate
    $(SYMFONY) doctrine:fixtures:load -n
    $(SYMFONY) doctrine:schema:validate

你可以找到the full version for Symfony 5 here。

【讨论】:

  • 谢谢,我会调查这个数据库连接,我已经和管理服务器的人谈过了。一旦我们发现一些东西,我会更新这个帖子:)
【解决方案2】:

正如 tftd 所说,这是连接。他们迁移了一些东西,现在我们的时间达到了 15 分钟。还是很多,但至少更好了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-19
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多