Ë÷Òý
Êý¾Ý¿â¶ÔÏóË÷Òý£ºÒ»ÖÖ×éºÏÊý¾ÝµÄ·½Ê½£¬Í¨¹ýË÷Òý¶ÔÏ󣬿ÉÒÔ¿ìËÙ²éѯµ½Êý¾Ý¿â¶ÔÏó±íÖеÄÌØ¶¨¼Ç¼£¬ÊÇÒ»ÖÖÌá¸ßÐÔÄܵÄ×î³£Ó÷½Ê½¡£
Ò»¸öË÷Òý»á°üº¬±íÖеİ´ÕÕÒ»¶¨Ë³ÐòÅÅÐòµÄÒ»Áлò¶àÁÐ×ֶΡ£
Ë÷Òý²Ù×÷£º
´´½¨Ë÷Òý£¬ÐÞ¸ÄË÷Òý£¬É¾³ýË÷Òý¡£
Êý¾Ý¿â¶ÔÏóË÷ÒýÖ÷ҪΪÁËÌá¸ß´Ó±íÖмìË÷Êý¾ÝµÄËÙ¶È¡£ÓÉÓÚÊý¾Ý´æ´¢ÔÚÊý¾Ý¿â±íÖУ¬ËùÒÔË÷ÒýÊÇ´´½¨ÔÚÊý¾Ý¿â¶ÔÏóÉϵģ¬ÓɱíÖеÄÒ»¸ö×ֶλò¶à¸ö×Ö¶ÎÉú³ÉµÄ¼ü×é³É£¬ÕâЩ¼ü´æ´¢ÔÚÊý¾Ý½á¹¹ÀB-Ê÷»ò¹þÏ£±í£©ÖУ¬Í¨¹ýMySql¿ÉÒÔ¿ìËÙÓÐЧµÄ²éÕÒÓë¼üÖµÏà¹ØÁªµÄ×ֶΡ£¸ù¾ÝË÷ÒýµÄ´æ´¢ÀàÐÍ£¬¿ÉÒÔ½«ËùÒÔ·ÖΪBÐÍÊ÷Ë÷ÒýºÍ¹þÏ£Ë÷Òý
×¢Ò⣺InnoDBºÍMyISAM´æ´¢ÒýÇæÖ§³ÖBtreeÀàÐÍË÷Òý£¬MEMORY´æ´¢ÒýÇæÖ§³ÖHashÀàÐÍË÷Òý£¬Ä¬ÈÏΪǰÕßË÷Òý¡£
Êý¾Ý¿â¶ÔÏóË÷ÒýµÄ³öÏÖ£¬³ýÁËÌṩÊý¾Ý¿â¹ÜÀíϵͳµÄ²éÕÒËÙ¶È£¬¶øÇÒ»¹¿ÉÒÔ±£Ö¤×ֶεÄΨһÐÔ¡£´Ó¶øÊµÏÖÊý¾Ý¿â±íµÄΨһÐÔ¡£
ÁùÖÖË÷Òý£ºÆÕͨË÷Òý£¬Î¨Ò»Ë÷Òý£¬È«ÎÄË÷Òý£¬µ¥ÁÐË÷Òý£¬¶àÁÐË÷Òý£¬¿Õ¼äË÷Òý
Àû±×£º
Àû£ºÌá¸ß²éÕÒËÙ¶È
±×£º¹ý¶àË÷ÒýÕ¼ÓôÅÅ̿ռä
Êʺϴ´½¨Ë÷ÒýµÄÇé¿ö£º
1¡¢¾³£±»²éѯµÄ×ֶΣ¬¼´ÔÚwhereÖгöÏÖµÄ×Ö¶Î
2¡¢·Ö×éµÄ×ֶΣ¬¼´ÔÚgroup byÖгöÏÖµÄ×Ö¶Î
3¡¢´æÔÚÒÀÀµ¹ØÏµµÄ×Ö±íºÍ¸¸±íÖ®¼äµÄÁªºÏ²éѯ£¬¼´Ö÷¼ü»òÍâ¼ü×Ö¶Î
4¡¢ÉèÖÃΨһÍêÕûÐÔµÄ×Ö¶Î
²»Êʺϴ´½¨µÄÇé¿ö£º
1¡¢ÔÚ²éѯÖкÜÉÙ±»Ê¹ÓõÄ×Ö¶Î
2¡¢ÓµÓÐÐí¶àÖØ¸´ÖµµÄ×Ö¶Î ÆÕͨË÷Òý
´´½¨£º
ÈýÖÖ·½Ê½£º
1¡¢´´½¨±íʱ´´½¨Ë÷Òý
2¡¢ÔÚÒѾ´æÔڵıíÉÏ´´½¨Ë÷Òý
3¡¢Í¨¹ýSQLÓï¾äÔÚALTER TABLEÀ´´´½¨
1¡¢
create table tablename(
column1 type,
column2 type,
....
INDEX|KEY [indexname] (columname [(³¤¶È)] [ASC|DESC])
)
?
ͨ¹ýindex»òkeyÀ´Ö¸¶¨×Ö¶ÎΪË÷Òý¡£
ÔÚ´´½¨Ë÷Òýʱ£¬¿ÉÒÔÖ¸¶¨Ë÷ÒýµÄ³¤¶È¡£ÕâÊÇÒòΪ²»Í¬´æ´¢ÒýÇæ¶¨ÒåÁ˱êµÄ×î´óË÷ÒýÊýºÍ×î´óË÷Òý³¤¶È
mysqlËùÖ§³ÖµÄ´æ´¢ÒýÇæ¶Ôÿһ¸ö±íÖÁÉÙÖ§³Ö16¸öË÷Òý£¬×ÜË÷Òý³¤¶ÈÖÁÉÙΪ256×Ö½Ú
create table t_index1(
id int,
name varchar(20),
loc varchar(20),
index index_id(id)
)
?
Ö®ºóÏò±íÀï²åÈë¶àÌõ¼Ç¼£¨ÕâÊDZØÐëµÄ£¬Èç¹ûÖ»ÓÐÒ»Ìõ¼Ç¼£¬³öÏÖ²»ÁËÏÂÃæµÄ×ÖÑù£©£¬È»ºóÖ´ÐÐ
explain select * from t_index1 where id=1\G
Ö®ºó³öÏÖ
possible key:index_id
key:index_id
µÄ×ÖÑùÖ®ºó¾Í˵Ã÷idµÄË÷Òý¶ÔÏ󱻯ôÓÃ
2¡¢ÔÚÒѾ´æÔڵıíÉÏ´´½¨ÆÕͨË÷Òý
create index indexname on tablename(column[(³¤¶È)][asc|desc])
create index index_name on t_index1(name)
ÑéÖ¤£º
explain select * from t_index1 where id=1\G
×ÖÑù³öÏÖ
possible key:index_name
key:index_name
3¡¢Í¨¹ýSQLÓï¾äalter table ´´½¨ÆÕͨË÷Òý
alter table tablename add index|key indexname(columnname[(length)][asc|desc])ÓÖ¼ûʶµ½createºÍalterµÄÁ½¸ö¹¦ÄÜ¡£ÐÞ¸ÄË÷Òý»á²»»áÓÃalterÄØ£¿É¾³ýË÷Òý»á²»»áÓÃdropÄØ£¿Íùºó¿´¿´
ΨһË÷Òý
1¡¢´´½¨±íʱ´´½¨Î¨Ò»Ë÷Òý
create table tablename(
column1 type,
column2 type,
...
unique index|key indexname(column[(length)][asc|desc])
)
?
ËùνµÄΨһË÷Òý¾ÍÊÇÔÚÆÕͨË÷ÒýÉÏÌí¼ÓÉϹؼü×ÖUNIQUE¡£
2¡¢ÔÚÒѾ´æÔڵıíÉÏ´´½¨Ò»¸öΨһË÷Òý
ÊÔ×Å×Ô¼ºÐ´Ð´
create unique index indexname on tablename(columname[(³¤¶È)][asc|desc])
ÍêÈ«OK3¡¢Í¨¹ýSQLÓï¾äalter table´´½¨Ë÷Òý
alter table tablename add unique index|key indexname(columnname[(length)][asc|desc])
È«ÎÄË÷Òý
È«ÎÄË÷ÒýÖ÷Òª¹ØÁªÔÚÊý¾ÝÀàÐÍΪchar£¬varchar£¬text×ֶΣ¬ÒÔ±ãÄܹ»¸ü¼Ó¿ìËÙ²éѯÊý¾ÝÁ¿½Ï´óµÄ×Ö·û´®ÀàÐ͵Ä×Ö¶Î
mysql´Ó3.23.23°æ±¾¿ªÊ¼Ö§³ÖÈ«ÎÄË÷Òý£¬Ö»ÄÜÔÚ´æ´¢ÀàÐÍΪmyISAMµÄÊý¾Ý¿â±íÉÏ´´½¨È«ÎÄË÷Òý¡£
ĬÈÏÇé¿öÏ£¬È«ÎÄË÷ÒýµÄËÑË÷·½Ê½Îª²»Çø·Ö´óСд£¬Èç¹ûÈ«ÎÄË÷ÒýËù¹ØÁªµÄ×Ö¶ÎΪ¶þ½øÖÆÊý¾ÝÀàÐÍ£¬ÔòÒÔÇø·Ö´óСдµÄËÑË÷·½Ê½Ö´ÐС£
¹Ø¼ü×Ö£ºfulltext index
ÈýÖÖ´´½¨·½Ê½¸úÉÏÃæµÄÀàËÆ£¬½«index¹Ø¼ü×Öд³Éfulltext index¾ÍÊÇ´´½¨ÁËÈ«ÎÄË÷Òý
¶àÁÐË÷Òý
ÔÚ´´½¨Ë÷Òýʱ£¬Ëù¹ØÁªµÄ×ֶβ»ÊÇÒ»¸ö×ֶΣ¬¶øÊǶà¸ö×Ö¶Î
ËäÈ»¿ÉÒÔͨ¹ýËù¹ØÁªµÄ×ֶνøÐвéѯ£¬µ«ÊÇÖ»ÓвéѯÌõ¼þʹÓÃÁËËù¹ØÁª×Ö¶ÎÖеĵÚÒ»¸ö×ֶΣ¬¶àÁÐË÷Òý²Å»á±»Ê¹Óá£
create table t_name(
column1 type,
column2 type,
...
index|key index_columni_columnj(columni[(length)][asc|desc],columnj[(length)][asc|desc])
?
)ÆäËûÁ½ÖÖ´´½¨·½Ê½ÀàÍÆÒ»Ï¾ͿÉÒÔÁË¡£
ÁùÖÖË÷Òý£ºÆÕͨË÷Òý£¬Î¨Ò»Ë÷Òý£¬È«ÎÄË÷Òý£¬µ¥ÁÐË÷Òý£¬¶àÁÐË÷Òý£¬¿Õ¼äË÷Òý
Ò»¹²ÊÇÁùÖÖ£¬ÕâÀï½²µ½ÁËÈýÖÖ¡£
ÍøÉÏËÑË÷µ½µÄ¿Õ¼äË÷Òý
¿Õ¼äË÷ÒýÊǶԿռäÊý¾ÝÀàÐ͵Ä×ֶν¨Á¢µÄË÷Òý£¬MYSQLÖеĿռäÊý¾ÝÀàÐÍÓÐ4ÖÖ£¬·Ö±ðÊÇGEOMETRY¡¢POINT¡¢LINESTRING¡¢POLYGON¡£MYSQLʹÓÃSPATIAL¹Ø¼ü×Ö½øÐÐÀ©Õ¹£¬Ê¹µÃÄܹ»ÓÃÓÚ´´½¨Õý¹æË÷ÒýÀàÐ͵ÄÓï·¨´´½¨¿Õ¼äË÷Òý¡£´´½¨¿Õ¼äË÷ÒýµÄÁУ¬±ØÐë
½«ÆäÉùÃ÷ΪNOT NULL£¬¿Õ¼äË÷ÒýÖ»ÄÜÔÚ´æ´¢ÒýÇæÎªMYISAMµÄ±íÖд´½¨
create table index6(
id int,
space geometry not null,
spatial index index6_sp(space)
);
?
ÒÔÉ϶¼ÊÇ´´½¨Ë÷Òý£¬Óд´½¨¾ÍµÃÓÐɾ³ý
ɾ³ýË÷Òý
drop index indexname on tablenameÓï·¨ºÜ¼òµ¥¡£