从 databasechangelog 读取 Liquibase 需要很长时间

     2023-04-09     300

关键词:

【中文标题】从 databasechangelog 读取 Liquibase 需要很长时间【英文标题】:Liquibase reading from databasechangelog takes a long time 【发布时间】:2012-06-13 12:14:00 【问题描述】:

有没有什么方法可以加快 liquibase 回滚和更新操作的 maven 任务?

我现在在数据库中有大约 280 个变更集,当我进行更新时,仅从 databasechangelog 中读取就需要很长时间。

我正在使用 liquibase 2 和许多 sql 格式的文件来进行变更集。 谢谢

编辑:在执行时添加更具体的时间范围

INFO 11/16/12 10:46 AM:liquibase: Reading from databasechangelog
INFO 11/16/12 10:54 AM:liquibase: Successfully released change log lock

在本例中,它在 MBP 上本地运行(核心 i7,内存为 8 gig)

【问题讨论】:

Define "a long time".... 这是一个性能问题,最好直接报告给 liquibase 项目。见:liquibase.jira.com/browse/CORE 【参考方案1】:

我注意到了同样的事情。通过 Maven 使用它时,我看到以下内容:

[INFO] Executing on Database: jdbc:postgresql://localhost/mydb
INFO 11/5/12 1:01 PM:liquibase: Successfully acquired change log lock
INFO 11/5/12 1:01 PM:liquibase: Reading from databasechangelog
INFO 11/5/12 1:01 PM:liquibase: Reading from databasechangelog
INFO 11/5/12 1:02 PM:liquibase: ChangeSet mydb/db.changelog-006.sql::55::ebridges ran successfully in 41ms
INFO 11/5/12 1:02 PM:liquibase: Successfully released change log lock
INFO 11/5/12 1:02 PM:liquibase: Successfully released change log lock

请注意,总体而言,运行需要两分钟来执行单个变更集,而该变更集本身只需要 41 毫秒的执行时间。这很慢。

【讨论】:

【参考方案2】:

在我的机器上我复制了这个问题,主线程卡在了本地方法上:

java.lang.Class.getGenericSignature()

这表明问题出在 JDK 实现上。考虑升级或切换实施。

【讨论】:

【参考方案3】:

在我的场景中,将 loadData 与 .csv 文件一起使用是导致 liquibase 需要很长时间才能执行的原因(我正在使用 liquibase 2.0.5)。

例如,这是一个导致 liquibase 变慢的变更集:

<changeSet id="foo" author="bar">
    <comment>Baz</comment>
    <loadData encoding="UTF-8"
              separator=";"
              file="some-file.csv"
              tableName="TableName"/>
    <rollback>
        <sqlFile path="rollback.sql" relativeToChangelogFile="true" splitStatements="false" />
    </rollback>
</changeSet>

【讨论】:

仅使用 databasechangelog 表生成 liquibase sql 文件

】仅使用databasechangelog表生成liquibasesql文件【英文标题】:Generateliquibasesqlfilewithonlydatabasechangelogtable【发布时间】:2018-09-2110:49:42【问题描述】:我想从我的changelog文件中生成一个SQL文件,该文件仅包含databasechangelog表,并在其... 查看详情

liquibase 不生成表 DATABASECHANGELOG

】liquibase不生成表DATABASECHANGELOG【英文标题】:liquibasedoesnotgeneratetableDATABASECHANGELOG【发布时间】:2017-06-0115:35:17【问题描述】:我是liquibase的新手,我想在生产中的数据库上使用它。这是一个小型应用程序,但我不想手动创建架... 查看详情

Grails 应用程序在启动时卡住,因为 DATABASECHANGELOG 表被锁定

】Grails应用程序在启动时卡住,因为DATABASECHANGELOG表被锁定【英文标题】:GrailsapplicationgetsstuckonstartupbecauseDATABASECHANGELOGtableislocked【发布时间】:2012-10-3120:25:51【问题描述】:我在Heroku上托管了一个使用数据库迁移插件的Grails应... 查看详情

如果运行 spring boot 并让 liquibase 自动执行迁移,则 Liquibase databasechangelog 表存储相对路径

】如果运行springboot并让liquibase自动执行迁移,则Liquibasedatabasechangelog表存储相对路径【英文标题】:Liquibasedatabasechangelogtablestoresrelativepathifrunspringbootandletliquibasedothemigrationautomatically【发布时间】:2021-08-0320:12:49【问题描述】:... 查看详情

Liquibase 从 2.0.4 迁移到版本 3.4.0 后缺少列“CONTEXTS”

...移到3.4.0。我尝试的第一件事是状态命令,导致读取表\'databasechangelog\ 查看详情

从 IE 中的值读取负数时,jquery 返回 0

】从IE中的值读取负数时,jquery返回0【英文标题】:jqueryreturns0whenreadinganegativefromvalueinIE【发布时间】:2011-06-2518:37:30【问题描述】:我是jQuery新手,今天偶然发现了一些意想不到的结果。使用jquery从LI元素中选择值时,如果值... 查看详情

从 DOM 中读取 HTML 片段并向其中添加自定义数据

】从DOM中读取HTML片段并向其中添加自定义数据【英文标题】:ReadHTMLsnippetfromDOMandaddcustomdatatoit【发布时间】:2020-04-0422:34:40【问题描述】:我习惯于使用jQuery通过元素的id来查询元素,并在元素内部或属性中放置一些从web服务检... 查看详情

如何从以前的 li 中删除类“show”?

】如何从以前的li中删除类“show”?【英文标题】:Howtoremoveclass"show"frompreviousliinangular?【发布时间】:2022-01-2122:42:50【问题描述】:我有一个问题,当用户点击另一个角度菜单时,如何从上一个li中删除类“show”?我已... 查看详情

如何从包含对象的数组中获取第一个元素

...me&lt;/li&gt;从数组中获取第一个元素,但我收到无法读取未定义的属性“name”的错误。这是我的完整代码<template>< 查看详情

请大侠帮忙,有一个txt文件,需要在html中读取这个txt,并且将txt文件中的内容显示在页面中

...:<li>张三</li><li>李四</li>用一个htm文件读取这个txt的内容,并显示在网页中,但是不能把<li></li>这些显示出来,只显示张三李四之类的内容,请大侠帮忙啊。。。1、纯html是无法直接读取txt文件内容的... 查看详情

从 CSS 居中 <li>

】从CSS居中<li>【英文标题】:CenterfromCSSa<li>【发布时间】:2018-02-0520:35:46【问题描述】:我有一个问题。我想将带有&lt;li&gt;标签的菜单居中,并且我有两个按钮。.subiectele-zileiwidth:100%;padding-left:25px;overflow:hidden;pad... 查看详情

使用 Javascript 从 json 数据中动态嵌套 ul\li 列表

】使用Javascript从json数据中动态嵌套ul\\\\li列表【英文标题】:Dynamicnestedul\\lilistfromjsondatausingJavascript使用Javascript从json数据中动态嵌套ul\\li列表【发布时间】:2014-02-0401:52:40【问题描述】:我需要从json数组创建一个动态嵌套的ul\... 查看详情

如何从选定的 li 中获取值?

】如何从选定的li中获取值?【英文标题】:Howtogetthevaluefromaselectedli?【发布时间】:2018-02-2823:23:48【问题描述】:我从CodePen复制了一个水平选择菜单,这里是sourcecode结果如下:varbtn=document.querySelector("button")vardropdown=document.queryS... 查看详情

jquery选择器

...滤选择器带":"/***$("li:even")----下标为偶数的li标签(下标从0开始)*$("li:add")----下标为奇数的li标签(下标从0开始)*$("li:eq(2)")----下标为2的li标签(下标从0开始)*$("li:gt(2)")----下标大于2的li标签(下标从0开始)*$("li:lt(2)")----下标... 查看详情

从乱码到整齐出现的过程让其li从0慢慢的变为一个指定的高度

以上是一个从乱码到整齐出现的过程让其li从0慢慢的变为一个指定的高度   查看详情

如何从项目列表中获取特定的 jQuery 项目?

】如何从项目列表中获取特定的jQuery项目?【英文标题】:HowtogetaspecificjQueryitemfromalistofitems?【发布时间】:2011-11-2218:54:53【问题描述】:我有这个:<ul><li>first</li><li>second</li><li>third</li><li>four... 查看详情

使用 php 从 html 文件中计算 li 项

】使用php从html文件中计算li项【英文标题】:Countingliitemsfromahtmlfileusingphp【发布时间】:2017-12-1613:00:05【问题描述】:我有一个HTML文件,其中包含许多JUST“li”标签,没有head和body标签以及其他任何东西。我想用PHP来计算它们。... 查看详情

如何从 JSON 数据递归地创建 UL/LI - 多层深度

】如何从JSON数据递归地创建UL/LI-多层深度【英文标题】:HowcanIrecursivelycreateaUL/LI\'sfromJSONdata-multiplelayersdeep【发布时间】:2012-03-1020:54:42【问题描述】:我正在尝试使用以下JSON数据在递归内部函数中创建以下类似结构,但运气不... 查看详情