📌 PostgreSQL: EXPLAIN ANALYZE bilan query optimizatsiyasi
Salom, hamkasblar!
Backend tizimlarida sekin ishlaydigan SQL so'rovlar - bu texnik qarzning eng og'ir ko'rinishlaridan biri. Bugun PostgreSQL'da query plan'ni qanday tahlil qilishni ko'rib chiqamiz.
EXPLAIN ANALYZE buyrug'i so'rovni haqiqatda bajaradi va uning qancha vaqt olganini hamda qaysi bosqichda (Sequential Scan, Index Scan va h.k.) resurs sarflaganini ko'rsatib beradi.
Quyidagi misolda Python orqali qanday qilib so'rov tahlilini olishni ko'ramiz:
import psycopg2
def analyze_query(query):
conn = psycopg2.connect("dbname=test user=postgres")
cur = conn.cursor()
cur.execute(f"EXPLAIN ANALYZE {query}")
rows = cur.fetchall()
for row in rows:
print(row[0])
cur.close()
conn.close()
analyze_query("SELECT * FROM users WHERE email = 'test@example.com'")
Nega buni bilish kerak?
Bu usul so'rovlaringizdagi bottlenecklarni (tiqinlarni) aniqlashga yordam beradi. Agar Seq Scan ko'p bo'lsa, demak sizga indeks yetishmayapti. Indekslarni to'g'ri qo'yish orqali so'rov tezligini 100 barobargacha oshirishingiz mumkin.
#complex_programmer #python #backend #cleancode
🚀 Kanal: @complexprogrammeruzchannel
💬 Guruh: @complexprogrammergroup
Salom, hamkasblar!
Backend tizimlarida sekin ishlaydigan SQL so'rovlar - bu texnik qarzning eng og'ir ko'rinishlaridan biri. Bugun PostgreSQL'da query plan'ni qanday tahlil qilishni ko'rib chiqamiz.
EXPLAIN ANALYZE buyrug'i so'rovni haqiqatda bajaradi va uning qancha vaqt olganini hamda qaysi bosqichda (Sequential Scan, Index Scan va h.k.) resurs sarflaganini ko'rsatib beradi.
Quyidagi misolda Python orqali qanday qilib so'rov tahlilini olishni ko'ramiz:
import psycopg2
def analyze_query(query):
conn = psycopg2.connect("dbname=test user=postgres")
cur = conn.cursor()
cur.execute(f"EXPLAIN ANALYZE {query}")
rows = cur.fetchall()
for row in rows:
print(row[0])
cur.close()
conn.close()
analyze_query("SELECT * FROM users WHERE email = 'test@example.com'")
Nega buni bilish kerak?
Bu usul so'rovlaringizdagi bottlenecklarni (tiqinlarni) aniqlashga yordam beradi. Agar Seq Scan ko'p bo'lsa, demak sizga indeks yetishmayapti. Indekslarni to'g'ri qo'yish orqali so'rov tezligini 100 barobargacha oshirishingiz mumkin.
#complex_programmer #python #backend #cleancode
🚀 Kanal: @complexprogrammeruzchannel
💬 Guruh: @complexprogrammergroup