例如,我有一個名爲varchar(10)
的單個Name
列的「NAMES」表;這個表有500行。我還有一個「NAME_COLLECTIONS」表,其中一列爲longtext
;在表的單行中,該列包含長度爲5500的字符串。什麼是更快的 - 從n列中取出一列大小爲t的單列,或者從1列中取出列大小爲n * t的列?
將SELECT * FROM NAMES WHERE :Name = 'Tom';
運行得比SELECT * FROM NAME_COLLECTIONS;
慢嗎?
如何增加NAMES中的列數與增加NAME_COLLECTIONS中單個文本的大小會影響性能?
我傾向於猜測其他所有條件都相同,將數據分割成更多的行會在整個表掃描中爲DBMS創建更多的開銷,但很少其他條件相等。無論如何,這是一個很空洞的問題 - 很難想象一個有用的應用程序,其中提出的數據表示同樣適用於語義*。 –