MySQLË÷ÒýµÄ²é¿´´´½¨ºÍɾ³ý
1£®Ë÷Òý×÷ÓÃ
ÔÚË÷ÒýÁÐÉÏ£¬³ýÁËÉÏÃæÌáµ½µÄÓÐÐò²éÕÒÖ®Í⣬Êý¾Ý¿âÀûÓø÷ÖÖ¸÷ÑùµÄ¿ìËÙ¶¨Î»¼¼Êõ£¬Äܹ»´ó´óÌá¸ß²éѯЧÂÊ¡£ÌرðÊǵ±Êý¾ÝÁ¿·Ç³£´ó£¬²éÑ¯Éæ¼°¶à¸ö±íʱ£¬Ê¹ÓÃË÷ÒýÍùÍùÄÜʹ²éѯËٶȼӿì³ÉǧÉÏÍò±¶¡£
ÀýÈ磬ÓÐ3¸öδË÷ÒýµÄ±ít1¡¢t2¡¢t3£¬·Ö±ðÖ»°üº¬ÁÐc1¡¢c2¡¢c3£¬Ã¿¸ö±í·Ö±ðº¬ÓÐ1000ÐÐÊý¾Ý×é³É£¬Ö¸Îª1¡«1000µÄÊýÖµ£¬²éÕÒ¶ÔÓ¦ÖµÏàµÈÐеIJéѯÈçÏÂËùʾ¡£
SELECT c1,c2,c3 from t1,t2,t3 WHERE c1=c2 AND c1=c3
´Ë²éѯ½á¹ûÓ¦¸ÃΪ1000ÐУ¬Ã¿Ðаüº¬3¸öÏàµÈµÄÖµ¡£ÔÚÎÞË÷ÒýµÄÇé¿öÏ´¦Àí´Ë²éѯ£¬±ØÐëѰÕÒ3¸ö±íËùÓеÄ×éºÏ£¬ÒÔ±ãµÃ³öÓëWHERE×Ó¾äÏàÅäµÄÄÇЩÐС£¶ø¿ÉÄܵÄ×éºÏÊýĿΪ1000×1000×1000£¨Ê®ÒÚ£©£¬ÏÔÈ»²éѯ½«»á·Ç³£Âý¡£
Èç¹û¶Ôÿ¸ö±í½øÐÐË÷Òý£¬¾ÍÄܼ«´óµØ¼ÓËÙ²éѯ½ø³Ì¡£ÀûÓÃË÷ÒýµÄ²éѯ´¦ÀíÈçÏ¡£
£¨1£©´Ó±ít1ÖÐÑ¡ÔñµÚÒ»ÐУ¬²é¿´´ËÐÐËù°üº¬µÄÊý¾Ý¡£
£¨2£©Ê¹Óñít2ÉϵÄË÷Òý£¬Ö±½Ó¶¨Î»t2ÖÐÓët1µÄֵƥÅäµÄÐС£ÀàËÆ£¬ÀûÓñít3ÉϵÄË÷Òý£¬Ö±½Ó¶¨Î»t3ÖÐÓëÀ´×Ôt1µÄֵƥÅäµÄÐС£
£¨3£©É¨Ãè±ít1µÄÏÂÒ»Ðв¢Öظ´Ç°ÃæµÄ¹ý³Ì£¬Ö±µ½±éÀút1ÖÐËùÓеÄÐС£
ÔÚ´ËÇéÐÎÏ£¬ÈÔÈ»¶Ô±ít1Ö´ÐÐÁËÒ»¸öÍêȫɨÃ裬µ«Äܹ»ÔÚ±ít2ºÍt3ÉϽøÐÐË÷Òý²éÕÒÖ±½ÓÈ¡³öÕâЩ±íÖеÄÐУ¬±ÈδÓÃË÷ÒýʱҪ¿ìÒ»°ÙÍò±¶¡£
ÀûÓÃË÷Òý£¬MySQL¼ÓËÙÁËWHERE×Ó¾äÂú×ãÌõ¼þÐеÄËÑË÷£¬¶øÔÚ¶à±íÁ¬½Ó²éѯʱ£¬ÔÚÖ´ÐÐÁ¬½Óʱ¼Ó¿ìÁËÓëÆäËû±íÖеÄÐÐÆ¥ÅäµÄËÙ¶È¡£
2. ´´½¨Ë÷Òý
ÔÚÖ´ÐÐCREATE TABLEÓï¾äʱ¿ÉÒÔ´´½¨Ë÷Òý£¬Ò²¿ÉÒÔµ¥¶ÀÓÃCREATE INDEX»òALTER TABLEÀ´Îª±íÔö¼ÓË÷Òý¡£
1£®ALTER TABLE
ALTER TABLEÓÃÀ´´´½¨ÆÕͨË÷Òý¡¢UNIQUEË÷Òý»òPRIMARY KEYË÷Òý¡£
ALTER TABLE table_name ADD INDEX index_name (column_list)
ALTER TABLE table_name ADD UNIQUE (column_list)
ALTER TABLE table_name ADD PRIMARY KEY (column_list)
ÆäÖÐtable_nameÊÇÒªÔö¼ÓË÷ÒýµÄ±íÃû£¬column_listÖ¸³ö¶ÔÄÄЩÁнøÐÐË÷Òý£¬¶àÁÐʱ¸÷ÁÐÖ®¼äÓöººÅ·Ö¸ô¡£Ë÷ÒýÃûindex_name¿ÉÑ¡£¬È±Ê¡Ê±£¬MySQL½«¸ù¾ÝµÚÒ»¸öË÷ÒýÁи³Ò»¸öÃû³Æ¡£ÁíÍ⣬ALTER TABLEÔÊÐíÔÚµ¥¸öÓï¾äÖиü¸Ä¶à¸ö±í£¬Òò´Ë¿ÉÒÔÔÚͬʱ´´½¨¶à¸öË÷Òý¡£
2£®CREATE INDEX
CREATE INDEX¿É¶Ô±íÔö¼ÓÆÕͨË÷Òý»òUNIQUEË÷Òý¡£
CREATE INDEX index_name ON table_name (column_list)
CREATE UNIQUE INDEX index_name ON table_name (column_list)
table_name¡¢index_nameºÍcolumn_list¾ßÓÐÓëALTER TABLEÓï¾äÖÐÏàͬµÄº¬Ò壬Ë÷ÒýÃ
Ïà¹ØÎĵµ£º
1.ÔÚWINDOWÏ£¬¼Ç¼Êý¾ÝµÄÎı¾Îļþ±ØÐë²»ÄÜÒÔÖÐÎÄÃüÃû£¨ÃüÁîÐнçÃæÎÞ·¨ÊäÈëÖÐÎÄ£©£¬ÇÒÐè±£´æÔÚ´ÅÅ̸ùĿ¼Ï¡£
2.×Ö¶ÎÖµÖ®¼ä±ØÐëÒªÒÔLOAD DATAÃüÁîÖÐÖ¸¶¨µÄ·Ö¸ô·û·Ö¸ô£¬Ä¬ÈÏΪTAB£¬·ñÔò²»Ê¶±ð£¬Ôì³É¸Ã×Ö¶ÎֵΪNULL¡£
3.ֵΪ¿ÕµÄ×ֶΣ¬ÔÚÎı¾ÎļþÀï¿ÉÒÔÉèΪ¿Õ£¬Ò²¿ÉÒÔÉèΪ\N.
4.WINDOWÏ£¬²»¼Ó"LINES TERMINATED BY ' ......
½ñÌì¸ãÁËÒ»Ì죬ÖÕÓڸ㶨ÁË¡£
¶ÔÓÚMysqlÓÐÁ½ÖÖģʽ£¬MYISAMÓëINNODB
Èç¹ûÊÇMYISAMµÄ»°£¬ÔÚdataĿ¼ÏÂÀï»á.frm .myd .myi ÈýÖÖÎļþ£¬ÄÇôֱ½Ó°ÑDATAÒÆ¹ýÈ¥£¬ÅäÖúÃȨÏ޾ͿÉÒÔ»¹ÔÁË¡£
Èç¹ûÊÇINNODBµÄ»°£¬ÄÇÊÇÏ൱µÄ·³°¡¡£ÔÚdataĿ¼ÏÂÖ»ÓÐ.frm(ÕâÖ»ÊÇÒ»¸öÊý¾Ý¸ñʽ£©£¬Õâ¸öÒÆ¹ýÈ¥ºó£¬ÊÇÎÞ·¨»¹ÔÔʼÊý¾ÝµÄ¡£
ÕæÕýµÄÊý¾ÝÊÇÕ ......
information_schema¿âÖаüº¬Á˶ÔÕû¸öÊý¾Ý¿âµÄºÜ¶àͳ¼ÆÐÅÏ¢£¬¿ÉÒÔͨ¹ý²é¿´ËüÃÇ£¬À´µÃµ½Êý¾Ý¿âÏà¹ØµÄÐÅÏ¢¡£
mysql> use information_schema;
Database changed
mysql> select count(1) as tables, concat(round(sum(table_rows)/1000000,2),'M') as rows, concat(round(sum(data_length)/(1024*1024*1024),2),'G') a ......
²éѯ¼°É¾³ýÖØ¸´¼Ç¼µÄ·½·¨
(Ò»)
1¡¢²éÕÒ±íÖжàÓàµÄÖØ¸´¼Ç¼£¬Öظ´¼Ç¼ÊǸù¾Ýµ¥¸ö×ֶΣ¨peopleId£©À´ÅжÏ
select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
2¡¢É¾³ý±íÖжàÓàµÄÖØ¸´¼Ç¼£¬Öظ´¼Ç¼ÊǸù¾Ýµ¥¸ö×ֶΣ¨peopleId£©À´Åжϣ¬Ö»Á ......