簡體   English   中英

從mysql數據庫中檢索數據會更快嗎?

[英]Which would be faster in retriving data from a mysql database?

哪個從mysql數據庫中檢索數據會更快? 數據分為兩列,還是來自單列的相同大小的數據?

編輯:

只是提出一個想法,我有一個問題表和五個答案。 這些答案相當大,每個1500字。 在數據檢索速度方面,我應該為每個答案使用一列,還是應該只用一個分隔符分隔5個答案的一列,然后用腳本分隔它們?

不要將答案組合成單個列,不管是否分隔。 如果你這樣做,你不僅打破了數據庫設計第一范式的經驗法則,那么你也可以為自己設定一個受到傷害的編程世界。

您還應該考慮到您在此處參與過早優化 也不要那樣做。 根據我的經驗,我認為其他人會同意,您應該相信您的RDBMS能夠有效地存儲和檢索數據。 您唯一需要做的就是正確設置索引。 如果這確實會導致性能問題,那么您可以在此時進行非規范化。

為了響應您的編輯,您提供的選項都不是此問題的“正確”設計。 您應該在答案表中創建5 ,每包含問題的ID和一列中的單個答案。

只有在遇到性能問題時才考慮其他設計。 除非您收集數百萬個問題,否則不太可能出現問題。

如果它們在同一個表中,它就沒有區別。

訪問行后,從列中查找數據需要花費大量時間。

您應該根據您的數據以及訪問方式做出決定。

不要依賴猜測和假設。 自己,硬件,編碼和數據進行基准測試。

我會說,您訪問和使用信息的方式比實際存儲的方式更具相關性。

我可能會說,如果您要獨立引用每個答案,例如多項選擇答案,請將答案存儲在具有以下結構的3列表中:

CREATE TABLE answers (
  question_id INTEGER PRIMARY KEY,
  answer INTEGER,
  answer_text TEXT
);

對於給定問題中的每個答案,答案將是1,2,3,4 ......的答案,將更加合適和理智。

某些DB不會索引文本類型列。 因此,如果您將文本列中的列拆分為varchar, 並且每列都已編入索引, 並且您使用的是不對文本列編制索引的數據庫,則可以更好地分解它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM