- 결론
- 문자열 index 를 설정 한 뒤
- like ‘AAA%’ : 인덱스 사용함
- like ‘%AAA%’ : 인덱스 사용 안함
- like ‘%AAA’ : 인덱스 사용 안함
인덱스 구조
MySQL 5.0.75
SQL 질의: show indexes from mh_bbs_mine_data;
행(레코드): 8
<thead><tr>&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;Table&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;Non_unique&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;Key_name&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;Seq_in_index&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;Column_name&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;Collation&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;Cardinality&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;Sub_part&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;Packed&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;Null&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;Index_type&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;Comment&lt;/th&gt;</tr></thead><tbody><tr class="odd">&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;mh_bbs_mine_data&lt;/td&gt;&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;1&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;IDX_for_caleandar&lt;/td&gt;&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;1&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;b_etc_0&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;A&lt;/td&gt;&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;1184&lt;/td&gt;&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;10&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;*NULL*&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;YES&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;BTREE&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt; &lt;/td&gt;</tr><tr class="even">&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;mh_bbs_mine_data&lt;/td&gt;&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;1&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;IDX_for_caleandar&lt;/td&gt;&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;2&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;b_etc_1&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;A&lt;/td&gt;&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;1184&lt;/td&gt;&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;10&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;*NULL*&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;YES&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;BTREE&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt; &lt;/td&gt;</tr><tr class="odd">&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;mh_bbs_mine_data&lt;/td&gt;&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;1&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;IDX_b_idx&lt;/td&gt;&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;1&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;b_id&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;A&lt;/td&gt;&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;6&lt;/td&gt;&lt;td align="right" class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;*NULL*&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;*NULL*&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt; &lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;BTREE&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt; &lt;/td&gt;</tr><tr class="even">&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;mh_bbs_mine_data&lt;/td&gt;&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;1&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;IDX_b_idx&lt;/td&gt;&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;2&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;b_idx&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;A&lt;/td&gt;&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;1184&lt;/td&gt;&lt;td align="right" class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;*NULL*&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;*NULL*&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt; &lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;BTREE&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt; &lt;/td&gt;</tr></tbody>
MySQL 5.0.75
SQL 질의: explain select * from mh_bbs_mine_data where b_etc_0 like ‘%08%’ **;
**행(레코드): 1
<thead><tr>&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;id&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;select_type&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;table&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;type&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;possible_keys&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;key&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;key_len&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;ref&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;rows&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;Extra&lt;/th&gt;</tr></thead><tbody><tr class="odd">&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;1&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;SIMPLE&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;mh_bbs_mine_data&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;ALL&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;*NULL*&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;*NULL*&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;*NULL*&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;*NULL*&lt;/td&gt;&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;1184&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;Using where&lt;/td&gt;</tr></tbody>
MySQL 5.0.75
SQL 질의: explain select * from mh_bbs_mine_data where b_etc_0 like ‘08%’ ;
행(레코드): 1
<thead><tr>&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;id&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;select_type&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;table&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;type&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;possible_keys&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;key&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;key_len&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;ref&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;rows&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;Extra&lt;/th&gt;</tr></thead><tbody><tr class="odd">&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;1&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;SIMPLE&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;mh_bbs_mine_data&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;range&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;IDX_for_caleandar&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;IDX_for_caleandar&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;33&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;*NULL*&lt;/td&gt;&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;1&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;Using where&lt;/td&gt;</tr></tbody>
MySQL 5.0.75
SQL 질의: explain select * from mh_bbs_mine_data where b_etc_0 like ‘%08’ ;
행(레코드): 1
<thead><tr>&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;id&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;select_type&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;table&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;type&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;possible_keys&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;key&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;key_len&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;ref&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;rows&lt;/th&gt;&lt;th style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; background-color: rgb(229, 229, 229);"&gt;Extra&lt;/th&gt;</tr></thead><tbody><tr class="odd">&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;1&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;SIMPLE&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;mh_bbs_mine_data&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;ALL&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;*NULL*&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;*NULL*&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;*NULL*&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;*NULL*&lt;/td&gt;&lt;td align="right" class=" nowrap" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em; white-space: nowrap;"&gt;1184&lt;/td&gt;&lt;td class="" style="border: 0.1em solid rgb(0, 0, 0); padding: 0.2em;"&gt;Using where&lt;/td&gt;</tr></tbody>
MySQL 5.5.42 에서도 별반 다르지 않은 결과.
🔗original-link