Query Optimization
๊ฐ์ฅ cost-effective ํ ๋ด์ฉ์ผ๋ก plan์ ์ง์ execution ํ๋ค.
Incremental View Maintenance
- Update view incrementally by accounting for changes that occurred since last update
- Join
- Selection
- Projection
- Intersection - Aggregation
Use of Selectives in Cost-Based Optimization
- Cost components for query execution
- Access cost to secondary storage
- Disk storage cost
- Computation cost
- Memory usage cost
- Communication cost
Displaying the systemโs query execution plan
EXPLAIN PLAN FOR <SQL query>
EXPLAIN PLAN SELECTION [additional options] FOR <SQL-query>
SET SHOWPLAN_TEXT ON or SET SHOWPLAN_XML ON or SET SHOW PLAN_ALL ON
Mysql EXPLAIN
์ฐธ๊ณ : [MySQL] ์คํ๊ณํ (explain) ๋ณด๋๋ฒ
- Mysql join type
- The type column of
EXPLAIN
output describes how tables are joined.
- ์๋๋ก ๊ฐ์๋ก ์์ข์ type์
- system : The table has only one row (= system table). This is a special case of the const join type.
- const : ํ
์ด๋ธ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ ์ฝ๋๊ฐ ํ๋์ผ ๋, ์์ ์ทจ๊ธ
- eq_ref : primary key๋ unique not null column์ผ๋ก ์์ฑ๋ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด ์กฐ์ธ์ ํ๋ ๊ฒฝ์ฐ์ด๋ค. const ๋ฐฉ์ ๋ค์์ผ๋ก ๋น ๋ฅธ ๋ฐฉ๋ฒ์ด๋ค.
-
SELECT * FROM ref_table,other_table WHERE ref_table.key_column=other_table.column;
- ref : ์ธ๋ฑ์ค๋ก ์ง์ ๋ ์ปฌ๋ผ๋ผ๋ฆฌ์ โ=โ , โ<=>โ ์ ๊ฐ์ ์ฐ์ฐ์๋ฅผ ํตํ ๋น๊ต๋ก ์ํ๋๋ ์กฐ์ธ์ด๋ค
-
SELECT * FROM ref_table WHERE key_column=expr;
- fulltext : The join is performed using a FULLTEXT index.
- ref_or_null : ref์ ๋์ผํ๋ NULL๊น์ง ์ฐพ์๋.
-
SELECT * FROM ref_table WHERE key_column=expr OR key_column IS NULL;
- index_merge : ์ธ๋ฑ์ค ๋ณํฉ ์ต์ ํ๊ฐ ์ ์ฉ๋๋ ์กฐ์ธํ์
. ์ด ๊ฒฝ์ฐ, key์ปฌ๋ผ์ ์ฌ์ฉ๋ ์ธ๋ฑ์ค์ ๋ฆฌ์คํธ๋ฅผ ๋ํ๋ด๋ฉฐ key_len ์ปฌ๋ผ์ ์ฌ์ฉ๋ ์ธ๋ฑ์ค์ค ๊ฐ์ฅ ๊ธด key๋ช
์ ๋ํ๋ธ๋ค.
- unique_subquery : ์ค์ง ํ๋์ ๊ฒฐ๊ณผ๋ง์ ๋ฐํํ๋ โINโ์ด ํฌํจ๋ ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฝ์ฐ์ด๋ค.
- index_subquery : unique_subquery์ ๋น์ทํ์ง๋ง ์ฌ๋ฌ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค
- range : ํน์ ํ ๋ฒ์์ rows๋ค์ ๋งค์นญ์ํค๋๋ฐ ์ธ๋ฑ์ค๊ฐ ์ฌ์ฉ๋ ๊ฒฝ์ฐ์ด๋ค. BETWEEN์ด๋ IN, โ>โ, โ>=โ ๋ฑ์ด ์ฌ์ฉ๋ ๋์ด๋ค.
- all : ์กฐ์ธ์์ ๋ชจ๋ ํ
์ด๋ธ์ ๋ชจ๋ row๋ฅผ ์ค์บํ๋ ๊ฒฝ์ฐ. ๋ฌผ๋ก ์ฑ๋ฅ์ด ๊ฐ์ฅ ๋๋ฆฌ๋ค.
References
- Fundamentals of Database Systems 7th Edition by Ramez Elmasri, Shamkant B. Navathe.
- [MySQL] ์คํ๊ณํ (explain) ๋ณด๋๋ฒ