¶ÔmysqlµÄorder by¼°limitÓÅ»¯ÒªÊÊÊý¾ÝÇé¿ö¶ø¶¨
ÒÔÏÂÕâÆªÎÄÕÂÂÛÊöÉÏÔÚʲôÇé¿öÏÂ×Ó²éѯ±ÈÒ»°ãµÄÄÚÁ¬½Ó²éѯ¸ü¼Ó¿ìËÙ
http://www.mysqlperformanceblog.com/2010/03/18/when-the-subselect-runs-faster/
ÒÔÏÂÊÇÎÒ¶ÔmysqlµÄorder byºÍlimitÓÅ»¯µÄ½¨Ò飬ҪÊʱíµÄÊý¾ÝÁ¿ºÍÓÃÀ´¹ýÂËÁеÄΨһֵµÄ¸öÊý¶ø¶¨
£¨1£©where×Ó¾äÖÐÓÃÀ´¹ýÂ˽á¹ûµÄÁÐËùÔÚË÷ÒýµÄcadinalityºÜС£¬¼´ÓÃÏà¹ØµÄÁÐÌõ¼þ¹ýÂËËùµÃµ½µÄ½á¹û¼¯ºÜ´óʱ£¬ÓÃ×Ó²éѯ¸ü¿ì
ÐÎʽÈ磺select * from table where column in (select column from table where column=?) order by column_id limit m,n
£¨2£©µ±¹ýÂËËùµÃµ½µÄ½á¹û¼¯ºÜСʱ£¬²»ÓÃ×Ó²éѯ¸ü¿ì(ÒòΪÈç¹ûÓÃ×Ó²éѯ£¬ÏȽøÐÐÅÅÐò£¬¿ÉÄÜÅÅÔÚÇ°ÃæµÄnÌõ¼Ç¼ȫ²»ÊÇÂú×ã×Ó²éѯÌõ¼þµÄ£¬Òò´Ë¿ÉÄÜɨÃè¸ü¶àµÄÐУ»µ«µ±¹ýÂ˵Ľá¹û¼¯ºÜ´óʱ£¬ÅÅÔÚÇ°ÃæµÄÂú×ãÌõ¼þµÄÐгöÏֵĻúÂÊÒ²´ó£¬Òò´Ë¿ÉÄÜɨÃè¸üÉÙµÄÐУ©
ÐÎʽÈ磺select * from table where column=? order by column_id limit m,n
Ïà¹ØÎĵµ£º
query result(14 records)
id
uid
gid
1
11
502
2
107
502
3
100
503
4
110
501
5
112
501
6
104
502
7
100
502
8
100
501
9
102
501
10
104
502
11
100
502
12
100
501
13
102
501
14
110
501
µÚÆßÌõÓëµÚʮһÌõÖØ¸´µÈ
·½·¨Ò»
mysql> create temporary table tmp_wrap ......
À´Ô´ http://e-xia.com/2009/06/rownum-in-mysql/
ÔÚ¹¤×÷ÖÐÅöµ½ÕâÑùµÄÎÊÌ⣬ÔÚÉú³É±¨±íʱµÚÒ»ÁÐÒªÊä³ötop 1, top 2, ... , top 10¡£¶ømysql²¢²»×Ô´øÕâÑùµÄ¹¦ÄÜ¡£¼ÙÉèÎÒÃÇÓÐÕâÑùµÄÒ»¸ö±í£º
mysql> create table tbl (
-> id int primary key,
-> col int
-> );
Query OK, 0 ......
mysql version 5.1
ÔÚmysql´´½¨±íµÄʱºò¾³£»áÓöµ½´´½¨ÈÕÆÚ×Ö¶ÎÐèÒªÉèÖõ±Ç°Ê±¼äΪĬÈÏÖµµÄʱºò£¬¾ÍÈçsqlserver2000Ò»Ñù£¬°ÑĬÈÏÖµÉèΪgetdate()¼´¿É£¬ÎÒÔÚÍøÉϲéÁËN¾Ã¶¼Ã»Óв鵽ʹÓÃÓÐЧµÄ·½·¨£¬×îºó×Ô¼ºÑо¿ÁËһЩ·½·¨Óë´ó¼Ò·ÖÏí£º
Êý¾Ý¿â£ºtest_db1
´´½¨±í£ºtest_ta1
Á½¸ö×Ö¶ ......
[ ÅäÖÃ ]
Ö´ÐÐÔöÁ¿±¸·ÝµÄǰÌáÌõ¼þÊÇMySQL´ò¿ªlog-binÈÕÖ¾¿ª¹Ø£¬ÀýÈçÔÚmy.ini»òmy.cnfÖмÓÈë log-bin=C:/Program Files/MySQL/MySQL Server 6.0/Data/mysql-bin “log-bin=”ºóµÄ×Ö·û´®ÎªÈÕÖ¾¼ÇÔØÄ¿Â¼£¬Ò»°ã½¨Òé·ÅÔÚ²»Í¬ÓÚmysqlÊý¾ÝĿ¼µÄ´ÅÅÌÉÏ¡£
[ ÍêÈ«±¸·Ý]
¼Ù¶¨ÐÇÆÚÈÕÏÂÎç1µãÖ´ÐÐÍêÈ«±¸·Ý£¬ÊÊÓÃÓÚMyISAM ......