Çë½ÌMYSQLÀïJOIN²Ù×÷ÓëSORT²Ù×÷ÄÚ´æµÄÎÊÌâ
Ò»°ãµÄnested loop join¶¼ÊǰÑÄÚ´æ·ÖΪ3¿é,Ò»¿éÓÃÀ´´æ·Å½ÏСµÄTABLE,Ò»¿éÓÃÀ´´æ·Å½Ï´óTABLEµÄÒ»²¿·Ö,Ò»¿éÓÃÀ´´æ·Å½á¹û×¼±¸Êä³ö.
ÇëÎÊÔÚMYSQLÀïµÄJOIN_BUFFERÒ²ÊÇÕâô·ÖµÄÂð? »¹ÊÇJOIN_BUFFERÖ»¸ºÔð´æ·ÅJOINµÄÁ½¸öTABLE?
ÁíÍâBUFFER·ÖÅäµÄ±ÈÀýÊÇÔõôÑùÁË?
»¹ÏëÇë½ÌÏÂSORT²Ù×÷ʱSORT_BUFFERµÄ·ÖÅäÊÇÔõôÑùµÄÄØ?
×îºÃÄÜÌṩÏà¹Øº¯Êý лл
Õâ¸öÎÊÌ⣬¹À¼ÆÐèÒªµÈÄã¿´ÍêÔ´´úÂë²ÅÄܻشðÁË¡£
ÎÒÒ²ºÜ¸ÐÐËȤ£¬°ï¶¥£¡ http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/27.gif
mysql ÉèÖÃjoin_buffer_size ²Å±»Ó¦ÓÃ
Assume that a join between three tables t1, t2, and t3 is to be executed using the following join types:
Table Join Type
t1 range
t2 ref
t3 ALL
If a simple NLJ algorithm is used, the join would be processed like this:
for each row in t1 matching range {
for each row in t2 matching reference key {
for each row in t3 {
if row satisfies join conditions,
send to client
}
}
}
Because the NLJ algorithm passes rows one at a time from outer loops to inner loops, tables processed in the inner loops typically are read many times.
JOIN_BUFFER ºÍ SORT_BUFFER¶¼¿ÉÒÔÔÚÅäÖÃÎļþÖÐÅäÖᡵ÷ÓŵÄʱºò¿ÉÄÜ»áÓõ½
Ïà¹ØÎÊ´ð£º
Ò»¸öÐÐÒµÍøÕ¾£¬ÒªÊµÏֵŦÄÜÒªÇóΪ£º
Ò»ËÑË÷±íµ¥¿ÉÑ¡ËÑË÷ ²úÆ·/×ÊѶ/É̼ң¬ËÑË÷ʱϣÍûÏÈËѱêÌâºóÈ«ÎÄ£¬µ±Ç°µÄÊý¾ÝÁ¿¹À¼Æ3Íò¶à£¬¶¨Î»ÆÚÍûÔÚ°ÙÍò¼¶Ò²¿ÉÓá£
Êý¾ÝÀàÐÍΪinnodb£¬µ±Ç°µÄ·½·¨ÊǶԹؼü´Ê½øÐÐ ......
ÎÒÒÔǰ°²×°ÁËÒ»´Î£¬ºóÀ´Ð¶ÔØÁË£¬ÏÖÔÚÔÙ°²×°µÄʱºò£¬Ìáʾ´íÎó£ºError 1305.Error reading from file C:DOCUME~1\LOCALS~1\Temp\mysql_server.msi.Verify that the file exists and that you can access it.
¿ ......
ÎÒÓõÄlikeÄ£ºý²éѯ£¬±ÈÈçmysqlµÄnameÖÐÓС°csdnÂÛ̳ϵͳ¡±Õ⼸¸ö×Ö£¬ÈçºÎÔÚ <input>Öвéѯ¡°csdn ϵͳ¡±Ò²ÄܳöÀ´Õâ¸ö¡°csdnÂÛ̳ϵͳ¡±£¬ÎÒÏÖÔÚÊDz顰csdn¡±»òÕß¡°ÏµÍ³¡±¶¼¿ÉÒÔ¡£Ð»Ð»¸÷λÁË£¡²»ÖªµÀÎÒÕâô±í´ï ......
ÓÐÒ»¸ö±í mytable ÓÐÏÂÃæ¼¸¸ö×Ö¶Î
id class(ѧÉú°à¼¶) studentSex(ѧÉúÐÔ±ð,1ÄÐ2Å®) studentName(ѧÉúÐÔÃû)
¼ÙÉèÏÖÓÐÊ®¼¸¸ö°à¼¶,
ÎÒÏë»ñµÃ°à¼¶ÖÐÄÐѧÉú×î¶àµÄÈýÌõÏàÓ¦ ......