例如,我有一个名为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创建更多的开销,但很少其他条件相等。无论如何,这是一个很空洞的问题 - 很难想象一个有用的应用程序,其中提出的数据表示同样适用于语义*。 –