안녕하세요
뻔뻔하게 또 질문만 드리러 ( -_);;
varchar[] 형에 대한 인덱싱에 관한게 없나 7.2 문서를 보고 있던중
http://database.sarang.net/database/postgres/manual/manual-7.2/performance-tips.html
Chapter 11. Performance Tips
이 문서 안에서요
nestloop에 대한 내용을 보았습니다.
우선 제가 그 글의 내용만을 보고 테스트한 내용입니다.
>=# set enable_nestloop = on;
SET VARIABLE
>=# explain ANALYZE
>=# select p.pid, p.page, p.name, p.columntype, p.opt, p.style as pagestyle, c.cid, c.eid ,c.seq, c.style as col_style
>=# from tb_page p left join tb_column c on p.pid=c.pid
>=# where p.gid=1 and p.pid='2';
NOTICE: QUERY PLAN:
[b]Nested Loop[/b]
-> Index Scan using tb_page_pkey on tb_page p
-> Index Scan using index_tb_column_pid on tb_column c
[b]Total runtime: 0.88 msec[/b]
EXPLAIN
>=# set enable_nestloop = off;
SET VARIABLE
>=# explain ANALYZE
>=# select p.pid, p.page, p.name, p.columntype, p.opt, p.style as pagestyle, c.cid, c.eid ,c.seq, c.style as col_style
>=# from tb_page p left join tb_column c on p.pid=c.pid
>=# where p.gid=1 and p.pid='2';
NOTICE: QUERY PLAN:
[b]Merge Join[/b]
-> Index Scan using tb_page_pkey on tb_page p
-> Sort
-> Seq Scan on tb_column c
[b]Total runtime: 0.85 msec[/b]
EXPLAIN
위처럼 나왔습니다.
에.. nestloop가 뭔가요? =_=;
그리고 위의 결과에서처럼 nestloop를 끄고 했을때 약간이나마 속도 향상이 있었습니다. 물론 데이터가 아주 적기 때문에 저정도 차이라지만 데이터가 많아질수록 그 폭이 커지지 않을까 생각하는데.. =_=;;;
그치만 nestloop가 적용되지 않으면 cpu cost가 높더군요.. 혹시 그 차이가 아닌지 생각해봤지만 =_=;;
nestloop와 join의 차이점에 대해 고수님들의 조언을 얻고자 글을 올립니다
그럼 답변 부탁드립니다~
|