我最近不得不向我們的數據庫團隊提出一組新的Postgres表格,這些表格將被我正在編寫的應用程序使用。他們失敗的設計,因爲我的表有上市等,從而領域:Postgres表可以按列順序進行優化嗎?
my_table
my_table_id : PRIMARY KEY, AUTO INCREMENT INT
some_other_table_id, FOREIGN KEY INT
some_text : CHARACTER VARYING(100)
some_flag : BOOLEAN
他們說,該表將不是最佳的,因爲some_text
出現some_flag
之前,由於CHARACTER VARYING
字段進行搜索慢BOOLEAN
S,做了當表掃描,具有一個表結構的列更快,它的列的排列順序從最高精度到最低精度;因此,如下所示:
my_table
my_table_id : PRIMARY KEY, AUTO INCREMENT INT
some_other_table_id, FOREIGN KEY INT
some_flag : BOOLEAN
some_text : CHARACTER VARYING(100)
這些DBA來自Sybase背景,最近才作爲我們的Postgres DBA進行切換。我想,這也許是不適用於Postgres的一個優化的Sybase(我想Postgres的是足夠聰明,不知何故不在乎有關列順序)。
無論哪種方式,我無法找到確認或否認任何Postgres的文檔。尋找任何戰鬥穿戴的Postgres DBA來權衡這是否是有效或虛假(或有條件有效!)索賠。
不,列順序對PostgreSQL中的性能沒有影響。 –