Ç°ÑÔ£º
±¾ÎIJûÊöµÄÊÇÒ»¿î¾¹ýÉú²ú»·¾³¼ìÑéµÄǧÍò¼¶Êý¾ÝÈ«ÎļìË÷£¨ËÑË÷ÒýÇ棩¼Ü¹¹¡£±¾ÎÄÖ»ÁгöÇ°¼¸ÕµÄÄÚÈݽÚÑ¡£¬²»ÌṩȫÎÄÄÚÈÝ¡£
ÔÚDELL PowerEdge 6850·þÎñÆ÷£¨ËÄ¿Å64 λInter Xeon MP 7110N´¦ÀíÆ÷ / 8GBÄڴ棩¡¢RedHat AS4 Linux²Ù×÷ϵͳ¡¢MySQL 5.1.26¡¢MyISAM´æ´¢ÒýÇæ¡¢key_buffer=1024M»·¾³ÏÂʵ²â£¬µ¥±í1000ÍòÌõ¼Ç¼µÄÊý¾ÝÁ¿£¨ÕâÕÅMySQL±íÓµÓÐint¡¢datetime¡¢varchar¡¢textµÈÀàÐ͵Ä10¶à¸ö×ֶΣ¬Ö»ÓÐÖ÷¼ü£¬ÎÞÆäËüË÷Òý£©£¬ÓÃÖ÷¼ü£¨PRIMARY KEY£©×÷ΪWHEREÌõ¼þ½øÐÐSQL²éѯ£¬Ëٶȷdz£Ö®¿ì£¬Ö»ºÄ·Ñ0.01Ãë¡£
³ö×Ô¶íÂÞ˹µÄ¿ªÔ´È«ÎÄËÑË÷ÒýÇæÈí¼þ Sphinx £¬µ¥Ò»Ë÷Òý×î´ó¿É°üº¬1ÒÚÌõ¼Ç¼£¬ÔÚ1ǧÍòÌõ¼Ç¼Çé¿öϵIJéѯËÙ¶ÈΪ0.xÃ루ºÁÃ뼶£©¡£Sphinx´´½¨Ë÷ÒýµÄËÙ¶ÈΪ£º´´½¨100ÍòÌõ¼Ç¼µÄË÷ÒýÖ»Ðè3¡«4·ÖÖÓ£¬´´½¨1000ÍòÌõ¼Ç¼µÄË÷Òý¿ÉÒÔÔÚ50·ÖÖÓÄÚÍê³É£¬¶øÖ»°üº¬×îÐÂ10ÍòÌõ¼Ç¼µÄÔöÁ¿Ë÷Òý£¬Öؽ¨Ò»´ÎÖ»Ð輸ʮÃë¡£
»ùÓÚÒÔÉϼ¸µã£¬ÎÒÉè¼Æ³öÁËÕâÌ×ËÑË÷ÒýÇæ¼Ü¹¹¡£ÔÚÉú²ú»·¾³ÔËÐÐÁËÒ»ÖÜ£¬Ð§¹û·Ç³£²»´í¡£ÓÐʱ¼äÎÒ»áרΪÅäºÏSphinxËÑË÷ÒýÇ棬¿ª·¢Ò»¸öÂß¼¼òµ¥¡¢Ëٶȿ졢ռÓÃÄÚ´æµÍ¡¢·Ç±íËøµÄMySQL´æ´¢ÒýÇæ²å¼þ£¬ÓÃÀ´´úÌæMyISAMÒýÇ棬ÒÔ½â¾öMyISAM´æ´¢ÒýÇæÔÚƵ·±¸üвÙ×÷ʱµÄËø±íÑÓ³ÙÎÊÌâ¡£ÁíÍ⣬·Ö²¼Ê½ËÑË÷¼¼ÊõÉÏÒÑÎÞÈκÎÎÊÌâ¡£
Ò»¡¢ËÑË÷ÒýÇæ¼Ü¹¹Éè¼Æ£º
1¡¢ËÑË÷ÒýÇæ¼Ü¹¹Í¼£º
2¡¢ËÑË÷ÒýÇæ¼Ü¹¹Éè¼Æ˼·£º
(1)¡¢µ÷Ó÷½Ê½×î¼ò»¯£º
¾¡Á¿·½±ãÇ°¶ËWeb¹¤³Ìʦ£¬Ö»ÐèÒªÒ»Ìõ¼òµ¥µÄSQLÓï¾ä¡°SELECT ... FROM myisam_table JOIN sphinx_table ON (sphinx_table.sphinx_id=myisam_table.id) WHERE query='...';¡±¼´¿ÉʵÏÖ¸ßЧËÑË÷¡£
(2)¡¢´´½¨Ë÷Òý¡¢²éѯËٶȿ죺
¢Ù¡¢Sphinx Search ÊÇÓɶíÂÞ˹ÈËAndrew Aksyonoff ¿ª·¢µÄ¸ßÐÔÄÜÈ«ÎÄËÑË÷Èí¼þ°ü£¬ÔÚGPLÓëÉÌÒµÐÒéË«Ðí¿ÉÐÒéÏ·¢ÐС£
SphinxµÄÌØÕ÷£º
SphinxÖ§³Ö¸ßËÙ½¨Á¢Ë÷Òý£¨¿É´ï10MB/Ã룬¶øLucene½¨Á¢Ë÷ÒýµÄËÙ¶ÈÊÇ1.8MB/Ã룩
¸ßÐÔÄÜËÑË÷£¨ÔÚ2-4 GBµÄÎı¾ÉÏËÑË÷£¬Æ½¾ù0.1ÃëÄÚ»ñµÃ½á¹û£©
¸ßÀ©Õ¹ÐÔ£¨Êµ²â×î¸ß¿É¶Ô100GBµÄÎı¾½¨Á¢Ë÷Òý£¬µ¥Ò»Ë÷Òý¿É°üº¬1ÒÚÌõ¼Ç¼£©
Ö§³Ö·Ö²¼Ê½¼ìË÷
Ö§³Ö»ùÓÚ¶ÌÓïºÍ»ùÓÚͳ¼ÆµÄ¸´ºÏ½á¹ûÅÅÐò»úÖÆ
Ö§³ÖÈÎÒâÊýÁ¿µÄÎļþ×ֶΣ¨ÊýÖµÊôÐÔ»òÈ«ÎļìË÷ÊôÐÔ£©
Ö§³Ö²»Í¬µÄËÑË÷ģʽ£¨¡°ÍêÈ«Æ¥Å䡱£¬¡°¶ÌÓïÆ¥Å䡱ºÍ¡°ÈÎһƥÅ䡱£©
Ö§³Ö×÷ΪMysqlµÄ´æ´¢ÒýÇæ
¢Ú¡¢Í¨¹ý¹úÍ⡶High Performance MySQL¡·×¨¼Ò×éµÄ²âÊÔ¿ÉÒÔ¿´³ö£¬¸ù¾ÝÖ÷¼ü½øÐвéѯµÄÀàËÆ¡°SELECT ... FROM ... WHERE id = ...¡±µÄSQLÓï¾ä£¨ÆäÖÐidΪPRIMARY KEY£©£¬Ã¿ÃëÖÓÄܹ»´¦Àí10000´ÎÒÔÉϵIJéѯ£¬¶øÆÕͨµÄSELECT²éѯÿÃëÖ»ÄÜ´¦Àí¼¸Ê®´Îµ½¼¸°Ù´Î£º
¢Û¡¢Sphinx²»¸ºÔðÎı¾×ֶεĴ洢¡£¼ÙÉ轫Êý¾Ý¿âµÄid¡¢date¡¢title¡¢body×ֶΣ¬ÓÃsphinx½¨Á¢ËÑË÷Ë÷Òý¡£¸ù¾Ý¹Ø¼ü×Ö¡¢Ê±¼ä¡¢Àà±ð¡¢·¶Î§µÈÐÅÏ¢²éѯһÏÂsphinx£¬sphinxÖ»»á½«²éѯ½á¹ûµÄIDºÅµÈ·ÇÎı¾ÐÅÏ¢¸æËßÎÒÃÇ¡£ÒªÏÔʾtitle¡¢bodyµÈÐÅÏ¢£¬»¹ÐèÒª¸ù¾Ý´ËIDºÅÈ¥²éѯMySQLÊý¾Ý¿â£¬»òÕß´ÓMemcachedbµÈÆäËûµÄ´æ´¢ÖÐÈ¡µÃ¡£°²×°SphinxSE×÷ΪMySQLµÄ´æ´¢ÒýÇ棬½«MySQLÓëSphinx½áºÏÆðÀ´£¬ÊÇÒ»ÖÖ±ã½ÝµÄ·½·¨¡£
´´½¨Ò»ÕÅSphinxÀàÐÍ±í£¬½«MyISAM±íµÄÖ÷¼üIDºÍSphinx±íµÄID×÷Ò»¸öJOINÁªºÏ²éѯ¡£ÕâÑù£¬¶ÔÓÚMyISAM±íÀ´Ëù£¬Ö»Ï൱ÓÚÒ»¸öWHERE id=...µÄÖ÷¼ü²éѯ£¬WHEREºóµÄÌõ¼þ¶¼½»¸øSphinxÈ¥´¦Àí£¬¿ÉÒÔ³ä·Ö·¢»ÓÁ½ÕßµÄÓÅÊÆ£¬ÊµÏÖ¸ßËÙËÑË÷²éѯ¡£
(3)¡¢°´·þÎñÀàÐͽøÐзÖÀ룺
ΪÁ˱£Ö¤Êý¾ÝµÄÒ»ÖÂÐÔ£¬ÎÒÔÚÅäÖÃSphinx¶ÁÈ¡Ë÷ÒýÔ´µÄMySQLÊý¾Ý¿âʱ£¬½øÐÐÁËËø±í¡£Sphinx¶ÁÈ¡Ë÷ÒýÔ´µÄ¹ý³Ì»áºÄ·ÑÒ»¶¨Ê±¼ä£¬ÓÉÓÚMyISAM´æ´¢ÒýÇæµÄ¶ÁËøºÍдËøÊÇ»¥³âµÄ£¬ÎªÁ˱ÜÃâд²Ù×÷±»³¤Ê±¼ä×èÈû£¬µ¼ÖÂÊý¾Ý¿âͬ²½Âäºó¸ú²»ÉÏ£¬ÎÒ½«Ìṩ¡°ËÑË÷²éѯ·þÎñ¡±µÄºÍÌṩ¡°Ë÷ÒýÔ´·þÎñ¡±µÄMySQLÊý¾Ý¿â½øÐÐÁË·Ö¿ª¡£¼àÌý3306¶Ë¿ÚµÄMySQLÌṩ¡°ËÑË÷²éѯ·þÎñ¡±£¬¼àÌý3406¶Ë¿ÚµÄMySQLÌṩ¡°Ë÷ÒýÔ´·þÎñ¡±¡£
(4)¡¢¡°Ö÷Ë÷Òý£«ÔöÁ¿Ë÷Òý¡±¸üз½Ê½£º
Ò»°ãÍøÕ¾µÄÌØÕ÷£ºÐÅÏ¢·¢²¼½ÏΪƵ·±£»¸Õ·¢²¼ÍêµÄÐÅÏ¢±»±à¼¡¢Ð޸ĵĿÉÄÜÐÔ´ó£»Á½ÌìÒÔÇ°µÄÀÏÌû±ä¶¯ÐÔ½ÏС¡£
»ùÓÚÕâ¸öÌØÕ÷£¬ÎÒÉè¼ÆÁËSphinxÖ÷Ë÷ÒýºÍÔöÁ¿Ë÷Òý¡£¶ÔÓÚÇ°Ìì17:00֮ǰµÄ¼Ç¼½¨Á¢Ö÷Ë÷Òý£¬Ã¿ÌìÁ賿×Ô¶¯Öؽ¨Ò»´ÎÖ÷Ë÷Òý£»¶ÔÓÚÇ°Ìì17:00Ö®ºóµ½µ±Ç°×îеļǼ£¬¼ä¸ô3·ÖÖÓ×Ô¶¯Öؽ¨Ò»´ÎÔöÁ¿Ë÷Òý¡£
(5)¡¢¡°Ext3Îļþϵͳ£«tmpfsÄÚ´æÎļþϵͳ¡±Ïà½áºÏ£º
ΪÁ˱ÜÃâÿ3·ÖÖÓÖؽ¨ÔöÁ¿Ë÷Òýµ¼Ö´ÅÅÌIO½ÏÖØ£¬´Ó¶øÒýÆðϵͳ¸ºÔØÉÏÉý£¬ÎÒ½«Ö÷Ë÷ÒýÎļþ´´½¨ÔÚ´ÅÅÌ£¬ÔöÁ¿Ë÷ÒýÎļþ´´½¨ÔÚtmpfsÄÚ´æÎļþϵͳ¡°/dev/shm/¡±ÄÚ¡£¡°/dev/shm/¡±ÄÚµÄÎļþÈ«²¿×¤ÁôÔÚÄÚ´æÖУ¬¶ÁдËٶȷdz£¿ì¡£µ«ÊÇ£¬ÖØÆô·þÎñÆ÷»áµ¼Ö¡°/dev/shm/¡±ÄÚµÄÎļþ¶ªÊ§£¬Õë¶ÔÕâ¸öÎÊÌ⣬ÎÒ»áÔÚ·þÎñÆ÷¿ª»úʱ×Ô¶¯´´½¨¡°/dev/shm/¡±ÄÚĿ¼½á¹¹ºÍSphinxÔöÁ¿Ë÷Òý¡£
(6)¡¢ÖÐÎķִʴʿ⣺
ÎÒ¸ù¾Ý¡°°Ù¶ÈÔçÆÚÖÐÎķִʿ⡱£«¡°Ëѹ·Æ´ÒôÊäÈ뷨ϸ°û´Ê¿â¡±£«¡°LibMMSeg¸ßƵ×ֿ⡱£«... ×ÛºÏÕûÀí³ÉÒ»·ÝÖÐÎķִʴʿ⣬³öÓÚijЩ¿¼ÂÇÔݲ»Ìṩ¡£Äã¿ÉÒÔʹÓÃLibMMSeg×Ô´øµÄÖÐÎÄ·Ö´Ê´Ê¿â¡£