2012-05-16 39 views
0

我的服務器上有一些問題,我需要改進它。php/MySQL - 問題始終表「破」

首先,每隔2小時,我在MyISAM表格中插入/更新/刪除約100萬個結果(這是所有表格),並且此表格必須在我的網站上可以訪問。

大約每月一次,我的網站不顯示,並顯示消息「無法連接到數據庫」。當我重新啓動服務器時,我可以看到這張表必須被修復。

有沒有辦法阻止我的桌子「破」或自動修復它? 我應該將引擎更改爲innoDB嗎?爲什麼?

其次,在此操作過程中,我的網站非常慢,它不僅僅是顯示此表結果的頁面。

我有充分的機會到我的服務器,但我不知道我找...的操作是cron作業用的19

一個很好的我希望我的網站是在無論我在背景中做什麼,速度都一樣。我所做的操作大約需要一個小時才能完成,如果不止於此,操作無關緊要。

+0

是否有一個原因,你正在對付現場表而不是使用它的副本? –

+2

僱用一個數據庫專業幾個小時。 – 2012-05-16 21:54:19

+0

@Brandt:但是我怎樣才能將第二張桌子複製到活着的桌子上而不用清空桌子?如果我清空它,用戶在操作過程中將不會看到任何結果。 – Marm

回答

0

的操作是cron作業用的19

運行在低優先級的作業不會使大量的感不錯。

每2個小時,我插入/更新/刪除約1萬個結果(至極是所有表)

這是一個很大的數據。你真的在推動系統的能力。至於如何解決這個問題......嘗試使用innodb會有多大的努力?恕我直言,不是在這裏張貼,等待答案,並嘗試出來。

還有很多其他的事情可以嘗試 - 比如對錶的影子副本運行cron作業,並將其替換爲前端訪問的表格(但它本身並不能解決腐敗問題)。

當然,我遇到了針對MyISAM表進行大量刪除的問題。

我懷疑可能有很多方法可以解決這個問題 - 但是你沒有給出太多的跡象表明你爲什麼需要這麼高的數據週轉率;由於我懷疑你的用戶正在查看你正在改變的所有記錄的細節,我懷疑最大的收穫是在數據到達數據庫之前整合這些數據。

它不僅是顯示此表結果的頁面。

即使您禁止通過cron作業和前端URL訪問快速轉換數據?這是一個完全不同的問題。

+0

沒有什麼好事,web服務器完成innaccessible,而cron工作正在工作。 – Marm

+0

如果我要求提供innoDB,那是因爲我希望在做出這樣的重大改變之前擁有優點和缺點。 – Marm

+0

你說你已經遇到了針對MyISAM表進行大量刪除的問題。 innoDB會更好嗎? – Marm