เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การสแกนด้วย Index

เพื่อนของคุณอาศัยอยู่ที่ฮาวาย ซึ่งหมอกควันจากภูเขาไฟกำลังทำให้โรคหอบหืดของเขาแย่ลง คุณจึงช่วยเขาค้นหาสถานที่อยู่อาศัยใหม่ โดยใช้ข้อมูลคุณภาพอากาศระดับมณฑลจาก Environmental Protection Agency คุณตัดสินใจว่าบ้านใหม่ของเขาควรมีคุณภาพอากาศที่ดีอย่างน้อย 90% ของวันทั้งหมดในปี

เนื่องจากสหรัฐอเมริกามีมณฑลจำนวนมาก ตาราง air quality จึงมีขนาด ใหญ่มาก คิวรีแรก (ที่ไม่ได้แสดงไว้) ใช้การสแกนแบบ sequential scan และใช้เวลานานมาก

คุณจึงตัดสินใจเพิ่ม index ให้กับคอลัมน์ที่ติดตามจำนวนวันที่คุณภาพอากาศดี จากนั้นตรวจสอบ query plan เพื่อดูว่าใช้การสแกนประเภทใด

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้าง index สำหรับตาราง annual_aqi โดยใช้คอลัมน์ good
  • กรองเฉพาะผลลัพธ์ที่มีคุณภาพอากาศระดับ good อย่างน้อย 90% ของปี
  • จำกัด aqi_year ไว้ที่ปี 2017 และ 2018 เพื่อเน้นข้อมูลปีล่าสุด

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

CREATE INDEX good_index 
ON ___(___);

EXPLAIN
SELECT state_name, county_name, aqi_year, good
FROM annual_aqi
WHERE ___ > 327 -- 90% of the year
AND ___ IN (___,___);
แก้ไขและรันโค้ด