SQL CREATE INDEXµÄÓ÷¨
Ë÷Òý (Index) ¿ÉÒÔ°ïÖúÎÒÃÇ´Ó±í¸ñÖпìËÙµØÕÒµ½ÐèÒªµÄ×ÊÁÏ¡£¾ÙÀýÀ´Ëµ£¬¼ÙÉèÎÒÃÇÒªÔÚÒ»±¾Ô°ÒÕÊéÖÐÕÒÈçºÎÖÖÖ²ÇཷµÄѶϢ¡£ÈôÕâ±¾ÊéûÓÐË÷ÒýµÄ»°£¬ÄÇÎÒÃÇÊDZØÐëÒª´ÓÍ·¿ªÊ¼¶Á£¬Ö±µ½ÎÒÃÇÕÒµ½ÓйØÖÖÖ±ÇཷµÄµØ·½ÎªÖ¹¡£ÈôÕâ±¾ÊéÓÐË÷ÒýµÄ»°£¬ÎÒÃǾͿÉÒÔÏÈÈ¥Ë÷ÒýÕÒ³öÖÖÖ²ÇཷµÄ×ÊѶÊÇÔÚÄÄÒ»Ò³£¬È»ºóÖ±½Óµ½ÄÇһҳȥÔĶÁ¡£ºÜÃ÷ÏԵأ¬ÔËÓÃË÷ÒýÊÇÒ»ÖÖÓÐЧÇÒʡʱµÄ·½Ê½¡£
´Ó×ÊÁÏ¿â±í¸ñÖÐѰÕÒ×ÊÁÏÒ²ÊÇͬÑùµÄÔÀí¡£Èç¹ûÒ»¸ö±í¸ñûÓÐË÷ÒýµÄ»°£¬×ÊÁÏ¿âϵͳ¾ÍÐèÒª½«Õû¸ö±í¸ñµÄ×ÊÁ϶Á³ö (Õâ¸ö¹ý³Ì½Ð×ö'table scan')¡£ÈôÓÐÊʵ±µÄË÷Òý´æÔÚ£¬×ÊÁÏ¿âϵͳ¾Í¿ÉÒÔÏÈÓÉÕâ¸öË÷ÒýÈ¥ÕÒ³öÐèÒªµÄ×ÊÁÏÊÇÔÚ±í¸ñµÄʲôµØ·½£¬È»ºóÖ±½ÓÈ¥ÄÇЩµØ·½×¥×ÊÁÏ¡£ÕâÑù×ÓËٶȾͿì¶àÁË¡£
Òò´Ë£¬ÔÚ±í¸ñÉϽ¨Á¢Ë÷ÒýÊÇÒ»¼þÓÐÀûÓÚϵͳЧÂʵÄÊ¡£Ò»¸öË÷Òý¿ÉÒÔº¸ÇÒ»»ò¶à¸öÀ¸Î»¡£½¨Á¢Ë÷ÒýµÄÓï·¨ÈçÏ£º
CREATE INDEX "INDEX_NAME" ON "TABLE_NAME" (COLUMN_NAME)
ÏÖÔÚ¼ÙÉèÎÒÃÇÓÐÒÔÏÂÕâ¸ö±í¸ñ£¬
TABLE Customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date date)
ÈôÎÒ們ÒªÔÚ Last_Name 這個欄λÉϽ¨Ò»個Ë÷Òý£¬ÎÒ們¾Í´òÈëÒÔϵÄÖ¸Á
CREATE INDEX IDX_CUSTOMER_LAST_NAME
on CUSTOMER (Last_Name)
ÈôÎÒÃÇÒªÔÚ Last_Name Õâ¸öÀ¸Î»ÉϽ¨Ò»¸öË÷Òý£¬ÎÒÃǾʹòÈëÒÔϵÄÖ¸Á
CREATE INDEX IDX_CUSTOMER_LOCATION
on CUSTOMER (City, Country)
Ë÷ÒýµÄÃüÃû²¢Ã»ÓÐÒ»¸ö¹Ì¶¨µÄ·½Ê½¡£Í¨³£»áÓõķ½Ê½ÊÇÔÚÃû³ÆÇ°¼ÓÒ»¸ö×ÖÊ×£¬ÀýÈç "IDX_" £¬À´±ÜÃâÓë×ÊÁÏ¿âÖÐµÄÆäËûÎï¼þ»ìÏý¡£ÁíÍ⣬ÔÚË÷ÒýÃûÖ®ÄÚ°üÀ¨±í¸ñÃû¼°À¸Î»ÃûÒ²ÊÇÒ»¸öºÃµÄ·½Ê½¡£
Çë¶ÁÕß×¢Ò⣬ÿ¸ö×ÊÁÏ¿â»áÓÐËü±¾ÉíµÄ CREATE INDEX Óï·¨£¬¶ø²»Í¬×ÊÁÏ¿âµÄÓï·¨»áÓв»Í¬¡£Òò´Ë£¬ÔÚÏÂÖ¸Áîǰ£¬ÇëÏÈÓÉ×ÊÁÏ¿âʹÓÃÊÖ²áÖÐÈ·ÈÏÕýÈ·µÄÓï·¨¡£
Ïà¹ØÎĵµ£º
ϵͳ»·¾³£ºWindows 7
Èí¼þ»·¾³£ºVisual C++ 2008 SP1 +SQL Server 2005
±¾´ÎÄ¿µÄ£º±àдһ¸öº½¿Õ¹ÜÀíϵͳ
ÕâÊÇÊý¾Ý¿â¿Î³ÌÉè¼ÆµÄ³É¹û£¬ËäÈ»³É¼¨²»¼Ñ£¬µ«ÊÇ×÷ΪÎÒÓÃVC++ ÒÔÀ´±àдµÄ×î´ó³ÌÐò»¹ÊÇ´«µ½ÍøÉÏ£¬ÒÔ¹©²Î¿¼¡£ÓÃVC++ ×öÊý¾Ý¿âÉè¼Æ²¢²»ÈÝÒ×£¬µ«Ò²²»ÊDz»¿ÉÄÜ¡£ÒÔÏÂÊÇÎҵijÌÐò½çÃæ£¬ºóÃæ ......
ÎÒÃDz¢²»Ò»¶¨Ã¿Ò»´Î¶¼Òª½«±í¸ñÄÚµÄ×ÊÁ϶¼Íêȫץ³ö¡£ÔÚÐí¶àʱºò£¬ÎÒÃÇ»áÐèҪѡÔñÐÔµØ×¥×ÊÁÏ¡£¾ÍÎÒÃǵÄÀý×ÓÀ´Ëµ£¬ÎÒÃÇ¿ÉÄÜֻҪץ³öÓªÒµ¶î³¬¹ý $1,000 µÄ×ÊÁÏ¡£Òª×öµ½ÕâÒ»µã£¬ÎÒÃǾÍÐèÒªÓõ½ WHERE Õâ¸öÖ¸Áî¡£Õâ¸öÖ¸ÁîµÄÓï·¨ÈçÏ£º
SELECT "À¸Î»Ãû"
from "±í¸ñÃû"
WHERE "Ìõ¼þ"
ÈôÎÒÃÇÒªÓÉÒÔϵıí¸ñ×¥³öÓªÒµ¶î³¬¹ý $1, ......
IN Õâ¸öÖ¸Áî¿ÉÒÔÈÃÎÒÃÇÒÀÕÕÒ»»òÊý¸ö²»Á¬Ðø (discrete) µÄÖµµÄÏÞÖÆÖ®ÄÚ×¥³öÊý¾Ý¿âÖеÄÖµ£¬¶ø BETWEEN ÔòÊÇÈÃÎÒÃÇ¿ÉÒÔÔËÓÃÒ»¸ö·¶Î§ (range) ÄÚ×¥³öÊý¾Ý¿âÖеÄÖµ¡£BETWEENÕâ¸ö×Ó¾äµÄÓï·¨ÈçÏ£º
SELECT "À¸Î»Ãû"
from " ±í¸ñÃû"
WHERE "À¸Î»Ãû" BETWEEN 'ÖµÒ»' AND 'Öµ¶þ'
Õ⽫ѡ³öÀ¸Î»Öµ°üº¬ÔÚÖµÒ»¼°Öµ¶þÖ®¼äµÄÿһ±Ê× ......
±í¸ñÊÇÊý¾Ý¿âÖд¢´æ×ÊÁϵĻù±¾¼Ü¹¹¡£ÔÚ¾ø´ó²¿·ÝµÄÇé¿öÏ£¬Êý¾Ý¿â³§É̲»¿ÉÄÜÖªµÀÄúÐèÒªÈçºÎ´¢´æÄúµÄ×ÊÁÏ£¬ËùÒÔͨ³£Äú»áÐèÒª×Ô¼ºÔÚÊý¾Ý¿âÖн¨Á¢±í¸ñ¡£ËäÈ»Ðí¶àÊý¾Ý¿â¹¤¾ß¿ÉÒÔÈÃÄúÔÚ²»ÐèÓõ½ SQL µÄÇé¿öϽ¨Á¢±í¸ñ£¬²»¹ýÓÉÓÚ±í¸ñÊÇÒ»¸ö×î»ù±¾µÄ¼Ü¹¹£¬ÎÒÃǾö¶¨°üÀ¨ CREATE TABLE µÄÓï·¨ÔÚÕâ¸öÍøÕ¾ÖС£
ÔÚÎÒÃÇÌøÈë CREATE TABL ......