đ¸ 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) āĻāϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšā§āĨ¤
āĻĒā§āϰāĻļā§āύ 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)
đ āĻāĻĻā§āĻĻā§āĻļā§āϝ: āĻĄā§āĻāĻžāĻŦā§āĻāϏā§āϰ āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻŦāĻž āϏā§āĻāĻŋāĻŽāĻž āϤā§āϰāĻŋ āĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻžāĨ¤
ii. DML (Data Manipulation Language)
đ āĻāĻĻā§āĻĻā§āĻļā§āϝ: āĻĄā§āĻāĻž āĻāύāϏāĻžāϰā§āĻ, āĻāĻĒāĻĄā§āĻ āĻŦāĻž āĻĄāĻŋāϞāĻŋāĻ āĻāϰāĻžāĨ¤