2010-05-09 21 views
4

我正在爲我的一個網站開發基於瀏覽器的RPG,現在我正在嘗試確定組織我的SQL表進行性能和維護的最佳方法。確定MySQL性能的最佳表結構

我的問題是:

是否列在SQL表數量影響它的可查詢的速度?

當談到PHP或MySQL時,我不是新手。我曾經開發過一些讓他們工作的共同目標,但最近我進入了一個功能程序不夠好的階段,除非它快速可靠。

無論如何,現在我有一個members約15列的表。它包含諸如玩家的用戶名,密碼,電子郵件,登錄信息,頁面瀏覽量等信息。但是,它不包含任何有關遊戲進度的信息。如果我爲軍隊規模,金幣,輪數和其他東西添加列,那麼它可以很容易地增加到大約40或50列。

哦,我的數據庫結構是標準化的。

有50列不斷被查詢的表是不好的主意嗎?我應該把它分成兩個表格;一個是用戶的一般信息,一個是用戶的遊戲統計信息?

我知道我可以自己查詢查詢時間,但是我還沒有真正創建表格,我認爲在我的遊戲這個重要決定上我會更好一些。

謝謝你的時間! :)

回答

5

如果依靠表掃描或緩存表數據頁面,則列數可能會有可測量的成本。但獲得良好表現的最佳方法是創建索引以協助您的查詢。如果你的索引有利於你的查詢,那麼表中一行的寬度幾乎是無關緊要的。通過比通過表掃描更快的方式查找特定行。

這裏有一些資源給你:

根據您的警告你的問題的結尾,你已經知道,你應該測量性能並只修復有問題的代碼。不要試圖做出過早的優化。

不幸的是,沒有用於定義索引的統一規則。最好的一組索引需要爲需要最快的查詢定製。這是一項艱苦的工作,需要大量的分析,測試以及對性能進行比較測量。它還需要大量的閱讀才能理解您的RDBMS技術如何使用索引。

+0

感謝您爲我提供這些資源。由於我幾乎總是在查詢表以查找用戶的ID(這是主鍵),所以根據您的響應,我有很多列應該沒有問題。 再次感謝,現在我可以繼續我的發展。 :) – 2010-05-09 23:48:05