INSERT INTO contacts_lists (contact_id, list_id)
SELECT contact_id, 110689 AS list_id
FROM plain_contacts
WHERE TRUE
AND is_print = TRUE
AND ((TRUE
AND country_id IN (231,39)
AND company_type_id IN (2,8,12,5,6,4,3,9,10,13,11,1,7)
AND is_broadcast = TRUE)
OR (TRUE
AND country_id IN (15,59,73,74,81,108,155,165,204,210,211,230)
AND company_type_id IN (2,8,12,5,6,4,3,9,10,13,11,1,7)
AND is_broadcast = TRUE)
OR (TRUE
AND country_id IN (230)
AND company_type_id IN (2,8,12,5,6,4,3,9,10,13,11,1,7)
AND is_broadcast = TRUE))
AND (NOT EXISTS (
SELECT title_id
FROM company_types_lists_titles
WHERE company_types_list_id = 92080)
OR title_id IN (
SELECT title_id
FROM company_types_lists_titles
WHERE company_types_list_id = 92080))
AND company_type_id = 2
AND country_id IN (
SELECT country_id
FROM countries_lists
WHERE list_id = 110689)
AND ((state_id IS NULL
OR country_id NOT IN (231,39)
OR state_id IN (
SELECT state_id
FROM lists_states
WHERE list_id = 110689))
OR zone_ids && ARRAY(
SELECT zone_id
FROM lists_zones
WHERE list_id = 110689)
)
AND (NOT EXISTS (
SELECT award_id
FROM company_types_lists_top_awards
WHERE company_types_list_id = 92080)
OR top_award_ids && ARRAY(
SELECT award_id
FROM company_types_lists_top_awards
WHERE company_types_list_id = 92080))
我已經使用postgresql從不同的表中選擇30000行,這需要花費少於一秒的時間從各種表中選擇數據。但是在選擇需要更多時間插入另一個表格的數據之後。如何減少插入的時間。這是我的查詢。在這個選擇查詢給出近30000條記錄。如何提高postgresql中的插入速度
我認爲你需要在你的句子(和點)中放置更多的單詞,以便有人能夠理解你的問題。也許把你正在使用的查詢。 – regilero
@Abdul通過點擊相關問題旁邊的複選標記,查看以前的答案並接受您喜歡的答案。 –
@Abdul Rafiu,「越來越多的時間」,你有一些實際的數字?此外,您可以嘗試在INSERT語句上運行EXPLAIN ANALYZE,並將其包裝在BEGIN .. ROLLBACk中。 – sayap