2010-08-06 63 views
1

我讀過很多次,當查詢MySQL(或任何數據庫)時,我們不得不閱讀太多的字段......只是查詢您需要的字段。查詢MySQL時有多少字段太多?

但是我有一個項目,其中一個表有100個字段/記錄/行。

問題是,每次我查詢數據庫時,在查詢完成後,我需要所有字段進行進一步計算等。

我最終將有大約200個用戶,這將使用相同的查詢/表。 目前我已經同時做了3臺PC的連續測試,不斷查詢數據庫,沒有任何性能問題,所有數據都在幾秒鐘內查詢。 另外請注意查詢是多次相同的(所有用戶查詢相同的東西),所以查詢緩存中打了很多..

但我關心,當所有用戶(+200)在鏈接和項目是在生產中,我會開始出現性能問題。

所以...問題,是100個字段太多查詢?

SELECT * ...使用,或將選擇場,場2,場3 ...等更快?

我不知道如何「模擬」200個用戶在同一時間查詢......任何想法?

謝謝

+0

「是100個字段太多查詢?」你已經測試過了,在你的情況下,答案是**否**。 「SELECT field1,field2,field3 ...等會更快嗎?」如果單獨提到'*'暗示和解析所有字段的查找都需要時間,但與實際查詢相比,這沒什麼。 – MvanGeest 2010-08-06 16:29:44

+0

感謝您的意見。 我不確定你的意思是「*意味着解析...」。你是說最好使用*(在這種情況下)還是更好地使查詢列出每個單獨的字段? – griseldas 2010-08-06 16:58:55

回答

3

有些想法可以找到here

如果你有200個用戶,你可能不會受太多的影響,除非他們決定採取一致行動。但是,我可能會問我是否真的需要100個字段,或者數據庫是否可以正常化。如果這就是你需要的,那就是你需要的。

+0

+1有100個字段的表格會產生可疑的代碼味道。 :-) – 2010-08-06 16:35:58

+0

相信我這一個,我已經看過減少字段的數量,但它是不可能的。 儘管並非所有記錄都使用全部100個字段,但大多數使用50-60個,75個以上和100個全數。 我對mysql沒有太多經驗,但我真的已經考慮過了,不知道如何讓它少於100個字段 – griseldas 2010-08-06 16:44:42

+0

感謝Amadan的鏈接! – griseldas 2010-08-06 16:52:27

0

我虛心地建議你需要看看數據庫規範化。您可以分割該記錄。

http://en.wikipedia.org/wiki/Database_normalization

http://databases.about.com/od/specificproducts/a/normalization.htm

MySQL的具體。

http://dev.mysql.com/tech-resources/articles/intro-to-normalization.html

而且它被認爲是不好的形式在生產代碼中使用「SELECT *」。就個人而言,如果我真的需要每個領域,我使用它。因人而異。

HTH

基於您的評論,你不能打破紀錄了:研究SQL「聯接」和「子查詢」。你會愛上他們的。 :-)

+0

如果你需要每個領域,'SELECT *'仍然是一個問題,因爲下次你添加一些東西數據庫你必須找到所有這些地方,而不是僅僅添加你知道它的新列將被使用。 – 2010-08-06 16:56:30

+0

感謝您的鏈接和意見。 但是,如果我將記錄劃分爲4個不同的表格,但是我需要所有字段進行計算,我仍然需要查詢4個表格中的每個表格上的所有25個字段,以獲得我需要的所有數據,對不對? – griseldas 2010-08-06 16:57:26

+0

@布倫丹:夠公平的。 :) – JustBoo 2010-08-06 17:01:47