🔸 SQL āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻĒā§āϰāĻļā§āύ āĻ“ āωāĻ¤ā§āϤāϰāσ

āĻĒā§āϰāĻļā§āύ ā§§: SQL āϕ⧀?

āωāĻ¤ā§āϤāϰ:

SQL (Structured Query Language) āĻšāϞ⧋ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ˛ā§āϝāĻžāĻ™ā§āĻ—ā§ā§Ÿā§‡āϜ āϝāĻž āĻĄā§‡āϟāĻžāĻŦ⧇āχāϏ⧇ āĻĄā§‡āϟāĻž insert, update, delete āĻāĻŦāĻ‚ query āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§ŸāĨ¤

āĻĒā§āϰāĻļā§āύ ⧍: SELECT, INSERT, UPDATE āĻ“ DELETE āĻāϰ āĻ•āĻžāϜ āϕ⧀?

āωāĻ¤ā§āϤāϰ:

  • SELECT – āĻĄā§‡āϟāĻžāĻŦ⧇āχāϏ āĻĨ⧇āϕ⧇ āĻĄā§‡āϟāĻž āĻĒ⧜āϤ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§Ÿ
  • INSERT – āύāϤ⧁āύ āĻĄā§‡āϟāĻž āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§Ÿ
  • UPDATE – āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻĄā§‡āϟāĻž āφāĻĒāĻĄā§‡āϟ āĻ•āϰāϤ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§Ÿ
  • DELETE – āĻĄā§‡āϟāĻž āĻŽā§āϛ⧇ āĻĢ⧇āϞāϤ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§Ÿ

āĻĒā§āϰāĻļā§āύ ā§Š: WHERE āĻāĻŦāĻ‚ HAVING āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āϕ⧀?

āωāĻ¤ā§āϤāϰ:

WHERE āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšā§Ÿ row āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻŦāĻ‚ āĻāϟāĻŋ GROUP BY āĻāϰ āφāϗ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§ŸāĨ¤
HAVING āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšā§Ÿ aggregate result (āϝ⧇āĻŽāύ COUNT(), SUM()) āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋ GROUP BY āĻāϰ āĻĒāϰ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§ŸāĨ¤

āĻĒā§āϰāĻļā§āύ ā§Ē: GROUP BY āϕ⧀ āĻ•āĻžāĻœā§‡ āϞāĻžāϗ⧇?

āωāĻ¤ā§āϤāϰ:

GROUP BY āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§Ÿ āĻāĻ• āĻŦāĻž āĻāĻ•āĻžāϧāĻŋāĻ• āĻ•āϞāĻžāĻŽā§‡āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻĄā§‡āϟāĻž āĻ—ā§āϰ⧁āĻĒ āĻ•āϰāϤ⧇, āϏāĻžāϧāĻžāϰāĻŖāϤ aggregate function āĻāϰ āϏāĻžāĻĨ⧇āĨ¤

āĻĒā§āϰāĻļā§āύ ā§Ģ: Index āϕ⧀ āĻāĻŦāĻ‚ āϕ⧇āύ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§Ÿ?

āωāĻ¤ā§āϤāϰ:

Index āĻšāϞ⧋ āĻĄā§‡āϟāĻžāĻŦ⧇āχāϏ⧇āϰ āĻāĻ•āϟāĻŋ āĻĄā§‡āϟāĻž āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ āϝāĻž āĻĻā§āϰ⧁āϤ āϏāĻžāĻ°ā§āϚ āĻ“ āϰāĻŋāĻŸā§āϰāĻžāχāĻ­āĻžāϞ āϏ⧁āĻŦāĻŋāϧāĻž āĻĻā§‡ā§ŸāĨ¤ āĻāϟāĻŋ query execution āĻĻā§āϰ⧁āϤ āĻ•āϰāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤

🔸 āĻĄā§‡āϟāĻžāĻŦ⧇āχāϏ āĻĄāĻŋāϜāĻžāχāύ āĻ“ āĻ•āύāϏ⧇āĻĒā§āϟ āĻĒā§āϰāĻļā§āύāσ

āĻĒā§āϰāĻļā§āύ ā§Ŧ: Normalization āϕ⧀?

āωāĻ¤ā§āϤāϰ:

Normalization āĻšāϞ⧋ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋ⧟āĻž āϝāĻž āĻĄā§‡āϟāĻžāĻŦ⧇āχāϏāϕ⧇ redundancy (āĻāĻ•āχ āĻĄā§‡āϟāĻž āĻŦāĻžāϰāĻŦāĻžāϰ āϰāĻžāĻ–āĻž) āĻ•āĻŽāĻŋā§Ÿā§‡ āĻāĻŦāĻ‚ āĻĄā§‡āϟāĻž integrity āĻŦāĻžā§œāĻŋā§Ÿā§‡ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ āĻ•āϰ⧇āĨ¤

āĻĒā§āϰāĻļā§āύ ā§­: 1NF, 2NF, 3NF āϕ⧀?

āωāĻ¤ā§āϤāϰ:

  • 1NF: āĻĒā§āϰāϤāĻŋāϟāĻŋ āϏ⧇āϞ āĻā§āϝāĻžāϟāĻŽāĻŋāĻ• āĻ­ā§āϝāĻžāϞ⧁ āϰāĻžāϖ⧇
  • 2NF: 1NF + āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ primary key āύāĻŋāĻ°ā§āĻ­āϰāĻļā§€āϞāϤāĻž
  • 3NF: 2NF + āĻŸā§āϰāĻžāύāϜāĻŋāϟāĻŋāĻ­ āύāĻŋāĻ°ā§āĻ­āϰāĻļā§€āϞāϤāĻž āĻĻā§‚āϰ āĻ•āϰāĻž

āĻĒā§āϰāĻļā§āύ ā§Ž: Primary Key āĻāĻŦāĻ‚ Unique Key āĻāϰ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āϕ⧀?

āωāĻ¤ā§āϤāϰ:

  • Primary Key – āĻĒā§āϰāϤāĻŋāϟāĻŋ row āϕ⧇ āχāωāύāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻļāύāĻžāĻ•ā§āϤ āĻ•āϰ⧇, null āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž
  • Unique Key – āχāωāύāĻŋāĻ• āĻŽāĻžāύ āϰāĻžāĻ–āϤ⧇ āĻĒāĻžāϰ⧇, āϤāĻŦ⧇ āĻāĻ•āĻŦāĻžāϰ null āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇

āĻĒā§āϰāĻļā§āύ ⧝: Foreign Key āϕ⧀?

*āωāĻ¤ā§āϤāϰ: *

āĻāĻ•āϟāĻŋ āĻŸā§‡āĻŦāĻŋāϞ⧇āϰ āĻ•āϞāĻžāĻŽ āϝāĻž āĻ…āĻ¨ā§āϝ āĻŸā§‡āĻŦāĻŋāϞ⧇āϰ Primary Key āϕ⧇ āϰ⧇āĻĢāĻžāϰ āĻ•āϰ⧇, āĻāϟāĻžāϕ⧇ Foreign Key āĻŦāϞ⧇āĨ¤

āĻĒā§āϰāĻļā§āύ ā§§ā§Ļ: ACID āĻŽāĻžāύ⧇ āϕ⧀?

āωāĻ¤ā§āϤāϰ:

  • A – Atomicity
  • C – Consistency
  • I – Isolation
  • D – Durability

āĻāχ āϗ⧁āĻŖāĻžāĻŦāϞāĻŋ āĻĄā§‡āϟāĻžāĻŦ⧇āχāϏ āĻŸā§āϰāĻžāύāĻœā§āϝāĻžāĻ•āĻļāύāϗ⧁āϞ⧋āϰ āĻŦāĻŋāĻļā§āĻŦāĻžāϏāϝ⧋āĻ—ā§āϝāϤāĻž āĻ“ āϏāĻ āĻŋāĻ•āϤāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇āĨ¤

🔸 SQL JOIN āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻĒā§āϰāĻļā§āύ āĻ“ āωāĻ¤ā§āϤāϰāσ

āĻĒā§āϰāĻļā§āύ ā§§ā§§: SQL JOIN āϕ⧀?

āωāĻ¤ā§āϤāϰ:

JOIN āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āĻŸā§‡āĻŦāĻŋāϞ āĻĨ⧇āϕ⧇ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āϝ⧁āĻ•ā§āϤ āĻĄā§‡āϟāĻž āĻāĻ•āĻ¤ā§āϰ⧇ āφāύāĻž āĻšā§ŸāĨ¤

āĻĒā§āϰāĻļā§āύ ⧧⧍: INNER JOIN āϕ⧀?

āωāĻ¤ā§āϤāϰ:

āĻĻ⧁āχ āĻŸā§‡āĻŦāĻŋāϞ⧇āϰ āϝ⧇āϏāĻŦ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻŽā§āϝāĻžāϚ āĻ•āϰ⧇ āϕ⧇āĻŦāϞ āϏ⧇āϗ⧁āϞ⧋āχ āĻĻ⧇āĻ–āĻžā§ŸāĨ¤

āĻĒā§āϰāĻļā§āύ ā§§ā§Š: LEFT JOIN āĻāĻŦāĻ‚ RIGHT JOIN āĻāϰ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āϕ⧀?

āωāĻ¤ā§āϤāϰ:

  • LEFT JOIN: āĻŦāĻžāĻŽ āĻŸā§‡āĻŦāĻŋāϞ⧇āϰ āϏāĻŦ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻāĻŦāĻ‚ āĻĄāĻžāύ āĻŸā§‡āĻŦāĻŋāϞ⧇āϰ āĻŽā§āϝāĻžāϚ āĻ•āϰāĻž āϰ⧇āĻ•āĻ°ā§āĻĄ
  • RIGHT JOIN: āĻĄāĻžāύ āĻŸā§‡āĻŦāĻŋāϞ⧇āϰ āϏāĻŦ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻāĻŦāĻ‚ āĻŦāĻžāĻŽ āĻŸā§‡āĻŦāĻŋāϞ⧇āϰ āĻŽā§āϝāĻžāϚ āĻ•āϰāĻž āϰ⧇āĻ•āĻ°ā§āĻĄ

āĻĒā§āϰāĻļā§āύ ā§§ā§Ē: FULL OUTER JOIN āϕ⧀ āĻ•āϰ⧇?

āωāĻ¤ā§āϤāϰ:

āĻĻ⧁āχ āĻŸā§‡āĻŦāĻŋāϞ⧇āϰ āϏāĻŦ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻĻ⧇āĻ–āĻžā§Ÿ, āϝāĻĻāĻŋ āύāĻž āĻŽā§āϝāĻžāϚ āĻ•āϰ⧇ āϤāĻŦ⧇ null āĻĻ⧇āĻ–āĻžā§ŸāĨ¤

āĻĒā§āϰāĻļā§āύ ā§§ā§Ģ: SELF JOIN āϕ⧀?

āωāĻ¤ā§āϤāϰ:

āϝāĻ–āύ āĻāĻ•āϟāĻŋ āĻŸā§‡āĻŦāĻŋāϞāϕ⧇ āύāĻŋāĻœā§‡āϰ āϏāĻžāĻĨ⧇āχ JOIN āĻ•āϰāĻž āĻšā§Ÿ āϤāĻ–āύ āϤāĻžāϕ⧇ SELF JOIN āĻŦāϞ⧇āĨ¤ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻšāĻžā§ŸāĻžāϰāĻžāĻ°ā§āĻ•āĻŋāĻ•āĻžāϞ āĻĄā§‡āϟāĻž (āϝ⧇āĻŽāύ employee-manager) āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§ŸāĨ¤

Image description

āĻĒā§āϰāĻļā§āύ 16: View āĻāĻŦāĻ‚ Materialized View āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āϕ⧀?

āωāĻ¤ā§āϤāϰ:

  • View āĻšāϞ⧋ āĻāĻ•āϟāĻŋ āĻ­āĻžāĻ°ā§āϚ⧁⧟āĻžāϞ āĻŸā§‡āĻŦāĻŋāϞ āϝāĻž āĻāĻ•āϟāĻŋ SQL query āĻāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āϤ⧈āϰāĻŋ āĻšā§ŸāĨ¤ āĻāϤ⧇ āĻŽā§‚āϞ āĻĄā§‡āϟāĻž āĻĨāĻžāϕ⧇ āύāĻž, āϕ⧇āĻŦāϞ query āϚāϞ⧇āĨ¤
  • Materialized View āĻšāϞ⧋ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻ­āĻŋāω āϝ⧇āϟāĻŋ query āĻāϰ āϰ⧇āϜāĻžāĻ˛ā§āϟāϕ⧇ āĻĢāĻŋāϜāĻŋāĻ•ā§āϝāĻžāϞāĻŋ āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰ⧇ āϰāĻžāϖ⧇, āĻĢāϞ⧇ āĻĻā§āϰ⧁āϤ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§ŸāĨ¤

āĻĒā§āϰāĻļā§āύ 17: Stored Procedure āĻ“ Function āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āϕ⧀?

āωāĻ¤ā§āϤāϰ:

  • Stored Procedure āĻāĻ•āĻžāϧāĻŋāĻ• āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āϏāĻŽāĻ¨ā§āĻŦāϝāĻŧ⧇ āϤ⧈āϰāĻŋ āĻāĻŦāĻ‚ āĻāϟāĻŋ return āύāĻž-āĻ“ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤
  • Function āϏāĻ°ā§āĻŦāĻĻāĻž āĻāĻ•āϟāĻŋ āĻŽāĻžāύ return āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϏāĻžāϧāĻžāϰāĻŖāϤ SELECT statement āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšā§ŸāĨ¤

āĻĒā§āϰāĻļā§āύ 18: Index āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇? āĻāĻŦāĻ‚ āĻ•āĻ–āύ Index āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āωāϚāĻŋāϤ āύ⧟?

āωāĻ¤ā§āϤāϰ:

Index āĻĄā§‡āϟāĻž āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ (āϝ⧇āĻŽāύ B-Tree) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻžāĻ°ā§āϚ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āĻĻā§āϰ⧁āϤ āĻ•āϰ⧇āĨ¤
Index āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āωāϚāĻŋāϤ āύ⧟ āϝāĻĻāĻŋ:

  • āφāĻĒāύāĻŋ āϖ⧁āĻŦāχ āϛ⧋āϟ āĻŸā§‡āĻŦāĻŋāϞ āύāĻŋā§Ÿā§‡ āĻ•āĻžāϜ āĻ•āϰāϛ⧇āύ
  • āφāĻĒāύāĻŋ āĻĒā§āϰāϚ⧁āϰ insert/update/delete āĻ•āϰāϛ⧇āύ (āĻ•āĻžāϰāĻŖ āĻāϗ⧁āϞ⧋ index āϰāĻŋāĻĢā§āϰ⧇āĻļ āĻ•āϰāϤ⧇ āĻšā§Ÿ)
  • āφāĻĒāύāĻŋ āĻāĻŽāύ āĻ•āϞāĻžāĻŽā§‡ index āĻ•āϰāϛ⧇āύ āϝ⧇āĻ–āĻžāύ⧇ āĻ­ā§āϝāĻžāϞ⧁āϗ⧁āϞ⧋āϰ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻļāύ āϖ⧁āĻŦ āĻ•āĻŽ (low cardinality)

āĻĒā§āϰāĻļā§āύ 19: Query Optimization āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āϰāĻŦ⧇āύ?

āωāĻ¤ā§āϤāϰ:

  • āĻĒā§āĻ°ā§Ÿā§‹āϜāύāĻšā§€āύ SELECT * āĻŦāĻžāĻĻ āĻĻāĻŋā§Ÿā§‡ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϞāĻžāĻŽ āĻŦ⧇āϛ⧇ āύāĻŋāύ
  • Index āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ
  • Subquery āĻāϰ āĻŦāĻĻāϞ⧇ JOIN āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ
  • Query Execution Plan (EXPLAIN) āĻĻ⧇āϖ⧇ āĻŦ⧁āĻā§āύ āϕ⧋āĻĨāĻžā§Ÿ āϏāĻŽā§Ÿ āĻŦ⧇āĻļāĻŋ āϞāĻžāĻ—āϛ⧇
  • Aggregate query āϗ⧁āϞ⧋āϤ⧇ GROUP BY āϏāĻžāĻŦāϧāĻžāύ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ

āĻĒā§āϰāĻļā§āύ 20: Database Sharding āĻ“ Replication āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āϕ⧀?

āωāĻ¤ā§āϤāϰ:

  • Sharding: āĻĄā§‡āϟāĻž āϕ⧇ horizontally āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻ­āĻžāĻ— āĻ•āϰ⧇ āϰāĻžāϖ⧇ (āĻŦ⧜ āĻĄā§‡āϟāĻžāĻŦ⧇āχāϏ⧇ āϞ⧋āĻĄ āĻ•āĻŽāĻžāϤ⧇)
  • Replication: āĻāĻ•āχ āĻĄā§‡āϟāĻž āĻāĻ•āĻžāϧāĻŋāĻ• āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻ•āĻĒāĻŋ āĻ•āϰ⧇ āϰāĻžāĻ–āĻž āĻšā§Ÿ (failover āĻ“ read-performance āĻŦāĻžā§œāĻžāϤ⧇)

āĻĒā§āϰāĻļā§āύ 21: Deadlock āϕ⧀ āĻāĻŦāĻ‚ āĻāϟāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāĻŦ⧇āύ?

āωāĻ¤ā§āϤāϰ:

Deadlock āϤāĻ–āύ āϘāĻŸā§‡ āϝāĻ–āύ āĻĻ⧁āϟāĻŋ āĻŦāĻž āϤāϤ⧋āϧāĻŋāĻ• āĻŸā§āϰāĻžāύāĻœā§āϝāĻžāĻ•āĻļāύ āĻāϕ⧇ āĻ…āĻĒāϰ⧇āϰ āϰāĻŋāϏ⧋āĻ°ā§āϏ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāϤ⧇ āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ āϕ⧇āωāχ āĻ•āĻžāϜ āĻļ⧇āώ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻžāĨ¤

Deadlock āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāĻžāϰ āωāĻĒāĻžā§Ÿāσ

  • āϞāĻ• āύ⧇āĻŦāĻžāϰ order āĻ āĻŋāĻ• āϰāĻžāĻ–āĻž
  • āϛ⧋āϟ transaction āϰāĻžāĻ–āĻž
  • Retry mechanism āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž
  • Timeout āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž

āĻĒā§āϰāĻļā§āύ 22: ORM (āϝ⧇āĻŽāύ Eloquent) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϞ⧇ performance issue āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āϕ⧇āύ?

āωāĻ¤ā§āϤāϰ:

  • Eager loading āύāĻž āĻ•āϰāϞ⧇ N+1 problem āĻšā§Ÿ
  • Unnecessary query generate āĻšā§Ÿ āϝāĻĻāĻŋ āϝāĻĨāĻžāϝāĻĨāĻ­āĻžāĻŦ⧇ scope āĻŦāĻž relationship define āύāĻž āĻ•āϰāĻž āĻšā§Ÿ
  • Raw SQL āĻŦāĻž optimized query āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇ performance āĻ…āύ⧇āĻ• āĻŦā§‡ā§œā§‡ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ ORM āĻāϰ āϤ⧁āϞāύāĻžā§Ÿ

āĻĒā§āϰāĻļā§āύ 23: Eager Loading vs Lazy Loading — āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āϕ⧀?

āωāĻ¤ā§āϤāϰ:

  • Eager Loading: āĻāĻ•āϏāĻžāĻĨ⧇ related āĻĄā§‡āϟāĻž āϞ⧋āĻĄ āĻ•āϰ⧇ (query optimization friendly)
  • Lazy Loading: āϝāĻ–āύ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ āϤāĻ–āύ related āĻĄā§‡āϟāĻž āϞ⧋āĻĄ āĻ•āϰ⧇ (āϧ⧀āϰ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇, N+1 problem āĻšāϤ⧇ āĻĒāĻžāϰ⧇)

āĻĒā§āϰāĻļā§āύ 24: Transaction isolation level āϗ⧁āϞ⧋ āϕ⧀ āϕ⧀?

āωāĻ¤ā§āϤāϰ:

  • Read Uncommitted: āĻ…āĻ¨ā§āϝ āĻŸā§āϰāĻžāύāĻœā§āϝāĻžāĻ•āĻļāύ āĻĨ⧇āϕ⧇ uncommitted āĻĄā§‡āϟāĻž āĻĒ⧜āĻž āϝāĻžā§Ÿ (Dirty Read)
  • Read Committed: āϕ⧇āĻŦāϞ committed āĻĄā§‡āϟāĻž āĻĒā§œā§‡
  • Repeatable Read: āĻāĻ•āχ query āĻŦāĻžāϰāĻŦāĻžāϰ āĻ•āϰāϞ⧇ āĻāĻ•āχ āϰ⧇āϜāĻžāĻ˛ā§āϟ āĻĒāĻžāĻŦ⧇āύ
  • Serializable: āϏāĻ°ā§āĻŦā§‹āĻšā§āϚ āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž, āĻŸā§āϰāĻžāύāĻœā§āϝāĻžāĻ•āĻļāύ āĻāϕ⧇ āĻ…āĻĒāϰ⧇āϰ āĻŽāϤ⧋ behave āĻ•āϰ⧇ āϝ⧇āύ āϏāĻŋāĻ™ā§āϗ⧇āϞ āĻĨā§āϰ⧇āĻĄā§‡ āĻšāĻšā§āϛ⧇

āĻĒā§āϰāĻļā§āύ 25: “EXPLAIN” āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϕ⧀ āĻāĻŦāĻ‚ āĻāϟāĻŋ āϕ⧇āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§Ÿ?

āωāĻ¤ā§āϤāϰ:

EXPLAIN āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĻāĻŋā§Ÿā§‡ SQL query āĻāϰ execution plan āĻĻ⧇āĻ–āĻž āϝāĻžā§ŸāĨ¤ āĻāϟāĻŋ āĻĻ⧇āĻ–āĻžā§Ÿ āϕ⧋āύ āĻŸā§‡āĻŦāĻŋāϞ āĻ•āĻ–āύ āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻšāĻšā§āϛ⧇, āϕ⧋āύ index āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšāĻšā§āϛ⧇ āχāĻ¤ā§āϝāĻžāĻĻāĻŋ — performance tuning āĻāϰ āϜāĻ¨ā§āϝ āĻāϟāĻŋ āϖ⧁āĻŦ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤

āĻĒā§āϰāĻļā§āύ 26: SQL āĻāϰ āĻ•ā§āϝāĻžāϟāĻžāĻ—āϰāĻŋāϗ⧁āϞ⧋ āĻ“ āϤāĻžāĻĻ⧇āϰ āĻ•āĻžāϜ?

āωāĻ¤ā§āϤāϰ:

i. DDL (Data Definition Language)

👉 āωāĻĻā§āĻĻ⧇āĻļā§āϝ: āĻĄā§‡āϟāĻžāĻŦ⧇āχāϏ⧇āϰ āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ āĻŦāĻž āĻ¸ā§āĻ•āĻŋāĻŽāĻž āϤ⧈āϰāĻŋ āĻ“ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻžāĨ¤

Image description

ii. DML (Data Manipulation Language)

👉 āωāĻĻā§āĻĻ⧇āĻļā§āϝ: āĻĄā§‡āϟāĻž āχāύāϏāĻžāĻ°ā§āϟ, āφāĻĒāĻĄā§‡āϟ āĻŦāĻž āĻĄāĻŋāϞāĻŋāϟ āĻ•āϰāĻžāĨ¤

Image description

Image description

Image description

Image description