คำถามติดแท็ก postgresql-10

1
ทำไม PostgreSQL จึงเลือกการเข้าร่วมที่มีราคาแพงกว่า?
PostgreSQL ใช้ค่าเริ่มต้นบวก default_statistics_target=1000 random_page_cost=1.5 รุ่น PostgreSQL 10.4 on x86_64-pc-linux-musl, compiled by gcc (Alpine 6.4.0) 6.4.0, 64-bit ฉันดูดและวิเคราะห์แล้ว แบบสอบถามตรงไปตรงมามาก: SELECT r.price FROM account_payer ap JOIN account_contract ac ON ap.id = ac.account_payer_id JOIN account_schedule "as" ON ac.id = "as".account_contract_id JOIN schedule s ON "as".id = s.account_schedule_id JOIN rate r ON s.id = …

1
ทำไม LEFT JOIN นี้ถึงทำงานแย่กว่า LEAT JOIN LATERAL มากนัก?
ฉันมีตารางต่อไปนี้ (นำมาจากฐานข้อมูล Sakila): film: film_id คือ pkey นักแสดง: actor_id คือกุญแจ film_actor: film_id และ actor_id เป็น fkeys สำหรับภาพยนตร์ / นักแสดง ฉันกำลังเลือกภาพยนตร์เฉพาะเรื่อง สำหรับหนังเรื่องนี้ฉันต้องการให้นักแสดงทุกคนเข้าร่วมในภาพยนตร์เรื่องนี้ด้วย ฉันมีสองคำสั่งสำหรับการนี้: หนึ่งที่มีและเป็นหนึ่งเดียวกับLEFT JOINLEFT JOIN LATERAL select film.film_id, film.title, a.actors from film left join ( select film_actor.film_id, array_agg(first_name) as actors from actor inner join film_actor using(actor_id) group by film_actor.film_id ) …

2
"ตารางการเปลี่ยนแปลง" ใน Postgres คืออะไร
หน้าอธิบายว่ามีอะไรใหม่ใน Postgres 10กล่าวถึง "ตารางการเปลี่ยนผ่านสำหรับทริกเกอร์" ตารางการเปลี่ยนแปลงสำหรับทริกเกอร์ คุณลักษณะนี้ทำให้AFTER STATEMENTทั้งสองเป็นประโยชน์และมีประสิทธิภาพโดยการเปิดเผยแถวที่เก่าและใหม่ในแบบสอบถาม ก่อนที่คุณสมบัตินี้AFTER STATEMENTทริกเกอร์จะไม่สามารถเข้าถึงสิ่งเหล่านี้ได้โดยตรงและการแก้ไขปัญหาคือไบแซนไทน์และมีประสิทธิภาพต่ำ สามารถเขียนลอจิกลอจิกจำนวนมากได้AFTER STATEMENTโดยหลีกเลี่ยงความจำเป็นในการสลับบริบทที่มีราคาแพงในแต่ละแถวที่จำเป็นสำหรับทริกเกอร์แต่ละแถว ตารางการเปลี่ยนแปลงคืออะไร?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.