将umbraco从7.1版更新到7.2后,我开始在获取数据方面遇到问题。 我注意到我无法获得InternalIndexer检查索引来完成重建,我认为这将解决我的问题。 我读到有一个大数据库可能会导致这个问题所以我正在尝试清理我的历史数据数据库。 我找到了一个执行此操作的脚本,但它是为SQL Server编写的,我将此问题转换为MySQL。
任何人都可以帮我转换这个脚本,或者可以使用另一个我可以使用的脚本吗? SQL Server脚本是:
CREATE PROCEDURE [dbo].[DeleteHistory]
AS
BEGIN
Select VersionID into #tmp FROM cmsDocument
WHERE versionID NOT IN (SELECT D.versionId FROM cmsDocument D
WHERE D.versionId IN (SELECT versionId FROM (SELECT CV.versionId, published, newest, RANK() OVER(ORDER BY CV.versionDate DESC) RowNum
FROM cmsContentVersion CV JOIN cmsDocument DD ON CV.versionId = DD.versionId
WHERE DD.nodeId = D.nodeId) AS tmp
WHERE tmp.RowNum <= 3 OR tmp.published = 1 OR tmp.newest = 1) )
DELETE FROM cmsPreviewXml WHERE VersionId IN (select #tmp.VersionId from #tmp)
DELETE FROM cmsContentVersion WHERE VersionId IN (select #tmp.VersionId from #tmp)
DELETE FROM cmsPropertyData WHERE VersionId IN (select #tmp.VersionId from #tmp)
DELETE FROM cmsDocument WHERE VersionId IN (select #tmp.VersionId from #tmp)
END
到目前为止我所拥有的是:
CREATE TEMPORARY TABLE tmp
Select VersionID FROM cmsDocument WHERE versionID NOT IN ( SELECT D.versionId, D.NodeId FROM cmsDocument D WHERE D.versionId IN ( SELECT
versionId FROM (
SELECT
CV.versionId, published, newest, @curRank := @curRank + 1 AS RowNum
FROM
cmsContentVersion CV
JOIN cmsDocument DD ON CV.versionId = DD.versionId
, (SELECT @curRank := 0) r
WHERE
DD.nodeId = D.NodeId
ORDER BY
CV.versionDate DESC
) AS tmp WHERE
tmp.RowNum <= 3 OR tmp.published = 1 OR tmp.newest = 1
) )
DELETE FROM cmsPreviewXml WHERE VersionId IN (select VersionId from tmp)
DELETE FROM cmsContentVersion WHERE VersionId IN (select VersionId from tmp)
DELETE FROM cmsPropertyData WHERE VersionId IN (select VersionId from tmp)
DELETE FROM cmsDocument WHERE VersionId IN (select VersionId from tmp)
DROP TEMPORARY TABLE tmp
希望你们能帮帮我。
由于
答案 0 :(得分:0)
我有同样的问题,我这样解决了:
SET GLOBAL connect_timeout=28800;
SET GLOBAL wait_timeout=28800;
SET GLOBAL interactive_timeout=28800;
DROP TEMPORARY TABLE IF EXISTS tmp;
CREATE TEMPORARY TABLE tmp (
Select versionId from (
Select * From (
SELECT CV.versionID , @curRank := @curRank + 1 AS RowNum
FROM cmsContentVersion CV
JOIN cmsDocument DD ON CV.versionId = DD.versionId, (SELECT @curRank := 0) r
WHERE (Newest=0 and published=0)
ORDER BY DD.nodeId, CV.VersionDate DESC
) Old
Where RowNum > 3
) Old2
);
SELECT Count(*) from tmp;
DELETE FROM cmsPreviewXml WHERE VersionId IN (select VersionId from tmp);
DELETE FROM cmsContentVersion WHERE VersionId IN (select VersionId from tmp);
DELETE FROM cmsPropertyData WHERE cmsPropertyData.VersionId IN (select VersionId from tmp);
DELETE FROM cmsDocument WHERE VersionId IN (select VersionId from tmp);
DELETE FROM umbracolog WHERE LOGHEADER='Error'
侨, 米歇尔