ÉèÖÃÅþÁ¬³Ø
ÅþÁ¬³ØÊÇÖÎÀíÊý¾Ý¿âÅþÁ¬µÄÈí¼þ×é¼þ¡£Õâ¿ÉÒÔͨ¹ý¶àÖÖ·½·¨×ÊÖúÌá¸ß×ÊԴʹÓÃÂÊ£¬×ÊÖúʵÏÖ¸ºÔØƽºâ»ò¹ÊÕÏתÒÆ£¬²¢ÇÒ¿ÉÒÔ´ó´óïÔÌÊÂÎñʱ¼ä¡£ÔÚÕâƪ²©ÎÄÖУ¬ÎÒÃǽ«ÏàʶʲôÊÇÅþÁ¬³ØÒÔ¼°ÔõÑùÉèÖÃËü¡£
ÅþÁ¬³ØÊÇÒ»¸öÈí¼þ×é¼þÖÎÀíÊý¾Ý¿âÅþÁ¬¡£Õâ¿ÉÒÔͨ¹ý¶àÖÖ·½·¨×ÊÖúÌá¸ß×ÊԴʹÓÃÂÊ£¬×ÊÖúʵÏÖ¸ºÔØƽºâ»ò¹ÊÕÏתÒÆ£¬²¢ÇÒ¿ÉÒÔ´ó´óïÔÌÊÂÎñʱ¼ä¡£ÔÚÕâƪ²©ÎÄÖУ¬ÎÒÃǽ«ÏàʶʲôÊÇÅþÁ¬³ØÒÔ¼°ÔõÑùÉèÖÃËü¡£
ʲôÊÇÅþÁ¬³ØÒÔ¼°ËüΪºÎÓÐÓÃ
·¿ªÓëÊý¾Ý¿âµÄÅþÁ¬ÐèÒªÐí¶à°ì·¨¡£ÎÒÃÇÐèÒªÅþÁ¬µ½Ð§ÀÍÆ÷²¢Ö´ÐгõʼÎÕÊÖ£¬¾Í¼ÓÃܺÍÅþÁ¬ÉèÖø濢һÖ£¬È»ºóÔÚËùÓв㣨ÍøÂçÇý¶¯³ÌÐò¡¢²Ù×÷ϵͳ²ã¡¢Êý¾Ý¿â²ãµÈ£©Öб£´æеÄÅþÁ¬×ÊÔ´¡£Ã¿¸öÅþÁ¬¶¼»áÏûºÄÄڴ棬ÄÚ´æ¾Þϸȡ¾öÓÚÊý¾Ý¿âÒýÇæ¡£¹ØÓÚ PostgreSQL£¬Ò»¸öÅþÁ¬ÉõÖÁ¿ÉÒÔʹÓà 1.3MB ÄÚ´æ¡£·¿ªÅþÁ¬Ò²ÐèҪʱ¼ä£¬ÓÉÓÚÎÒÃÇÐèÒªÐÉÌÐÂÅþÁ¬µÄÉèÖá£
ÈôÊÇÎÒÃÇһֱΪÿ¸ö SQL ÅÌÎÊ·¿ªÐÂÅþÁ¬£¬¿ÉÄܻᵼÖÂÊý¾Ý¿âЧÀÍÆ÷·ºÆð¶à¸öÎÊÌ⣺
·¿ªÅþÁ¬ÐèҪʱ¼äºÍ×ÊÔ´£¬Òò´ËÎÒÃǵÄÉúÒâÓªÒµËÙÂʽÏÂý
ÎÒÃÇ¿ÉÄÜ»áÁè¼ÝÔ˶¯ÅþÁ¬µÄÏÞÖÆ£¨Ä¬ÈÏÇéÐÎÏ¿ÉÒÔÉèÖÃΪij¸öÖµ£©ÏñÒ»°Ù¸öÅþÁ¬£©
Êý¾Ý¿â¿ÉÄÜ»áÏûºÄ¸ü¶àÄڴ棬Õâ¿ÉÄÜ»á¶Ô»º´æÖÀÖÐÂʺͿÉÓÃÓÚÅÌÎʵĿÉÓÃÄڴ汬·¢¸ºÃæÓ°Ïì
¶ø²»ÊÇ·¿ªÃ¿¸ö SQL ÅÌÎʶ¼ÓÐÒ»¸öÐÂÅþÁ¬£¬ÎÒÃÇ¿ÉÒԳػ¯ÅþÁ¬¡£ÎÒÃÇ¿ÉÒÔÉèÖÃÅþÁ¬³ØÀ´±£´æÅþÁ¬ÊýÄ¿²¢ÎªËùÓпͻ§¶ËÖØÓÃËüÃÇ¡£ÕâÑùÎÒÃǵÄÓ¦ÓóÌÐòÅþÁ¬µ½³Ø»¯Æ÷¶ø²»ÊÇÖ±½ÓÅþÁ¬Êý¾Ý¿â£¬È»ºó³Ø»¯Æ÷ÅþÁ¬µ½Êý¾Ý¿â¡£Õâ´øÀ´Á˶à¸öÓŵ㣺
ÅþÁ¬³ØʹÅþÁ¬¼á³Ö·¿ª×´Ì¬µÄʱ¼ä¸ü³¤£¬´Ó¶øïÔÌÁËÊý¾Ý¿â¶Ë·¿ªºÍ¹Ø±ÕÅþÁ¬µÄ¿ªÏú²¢ïÔÌÁËÑÓ³Ù¡£
ÎÒÃÇ¿ÉÒÔÔÚÅþÁ¬Ö®¼äÉõÖÁÊý¾Ý¿âÖ®¼äʵÏÖ¸ºÔØƽºâ£¬´Ó¶øÌá¸ßÐÔÄÜ¡£
³Ø»¯Æ÷¿ÉÒÔά³ÖÎȹ̵ÄÅþÁ¬ÊýÄ¿£¬Òò´ËÎÒÃÇ¿ÉÒÔ×èÖ¹Õâ¸öÎÊÌâÔ˶¯ÅþÁ¬¹ý¶à£¬»áïÔÌ×ÊԴʹÓá£
³Ø»¯Æ÷¿ÉÒÔÖض¨ÏòÖ÷ЧÀÍÆ÷ºÍ±¸ÓÃЧÀÍÆ÷Ö®¼äµÄÅþÁ¬£¬ÒÔÌṩ¹ÊÕÏתÒÆ£¬´Ó¶øÌá¸ßÎȹÌÐԺͿÉÀ©Õ¹ÐÔ¡£
³Ø»¯Æ÷¿ÉÒÔ½«ÃÜÂë´æ´¢µ½Êý¾Ý¿âµÄÖÐÑëλÖ㬴ӶøÌá¸ßÇå¾²ÐÔ¡£
³Ø»¯Æ÷¿ÉÒÔ»º´æЧ¹ûÒÔÌá¸ßÅÌÎÊÐÔÄÜ¡£
ÅþÁ¬³ØÒ²ÓÐһЩÈõµã£º
ËüÊÇÎÒÃÇϵͳÖпÉÄܳÉΪ¹ÊÕϵãµÄÁíÒ»¸ö×é¼þ¡£
ÓÉÓÚÓ¦ÓóÌÐòºÍÊý¾Ý¿âÖ®¼äµÄÁíÒ»¸öÍøÂçÔ¾µã£¬ÍøÂçÑÓ³Ù¿ÉÄÜ»áÂÔÓÐÔöÌí¡£
µÍЧµÄÅþÁ¬³Ø¿ÉÄÜ»á³ÉΪƿ¾±¡£
ÎÒÃÇÐèÒªµ÷½âºÍά»¤ÅþÁ¬³Ø£¬ÕâÔöÌíÁËά»¤¼ç¸º¡£
²î±ðÀàÐ͵ÄÅþÁ¬³Ø
ÓÐÐí¶àʵÏÖÅþÁ¬³ØµÄÒªÁì¡£ÔÚ±¾½ÚÖУ¬ÎÒÃǽ«ÏàʶÖÖÖÖʵÏÖϸ½Ú¡£
Íⲿ»òÄÚ²¿ÅþÁ¬³Ø
Ôڵ䷶ÇéÐÎÏ£¬ÎÒÃÇ´ÓÓ¦ÓóÌÐòÅþÁ¬µ½Êý¾Ý¿â¡£ÎÒÃÇÏÖÔÚ¿ÉÒÔ½«ÅþÁ¬³Ø·ÅÔÚÁ½¸öλÖÃÖ®Ò»£ºÓ¦ÓóÌÐò×Ô¼º»òÓ¦ÓóÌÐòºÍÊý¾Ý¿âÖ®¼äµÄij¸öλÖá£
½«ÅþÁ¬³Ø·ÅÔÚÓ¦ÓóÌÐòÖУ¨Ó¦ÓóÌÐò¶ËÅþÁ¬³Ø£©¿ÉÒÔºÜÊÇÈÝÒ×ÓÉÓÚÐí¶à ORM »òÊý¾Ý¿âÇý¶¯³ÌÐò¶¼Ö§³Ö¿ªÏä¼´Óá£ÀýÈ磬JDBC Ö§³Ö c3p0£¬¶ø ODBC Ö§³Ö¿ªÏä¼´Óá£Õâ´øÀ´ÁËÐí¶àÀûÒæ¡£ÎÒÃDz»ÐèҪװÖúÍά»¤ÈκÎÌØÁíÍâ×é¼þ£¬ÓÉÓڳػ¯Æ÷λÓÚÓ¦ÓóÌÐòÄÚ²¿¡£ÎÒÃÇÖ»ÐèÒª°²ÅÅÓ¦ÓóÌÐòµÄа汾£¬È»ºó¾Í¿ÉÒÔ×¼±¸ºÃ³Ø»¯ÁË¡£ÕâÒ²ïÔÌÁËÍøÂçÑÓ³Ù£¬ÓÉÓÚÎÒÃÇûÓÐÈκÎÌØÁíÍâÍøÂçÔ¾µã£¨Ò»Çж¼Î»ÓÚÎÒÃǵÄÓ¦ÓóÌÐòÄÚ²¿£©¡£
²»ÐÒµÄÊÇ£¬Ó¦ÓóÌÐò¶ËÅþÁ¬³ØÓÐһЩÈõµã¡£×î´óµÄÒ»¸öÊÇËü½öÕë¶ÔÒ»¸öÓ¦ÓóÌÐò¾ÙÐÐÉèÖá£ÈôÊÇÎÒÃÇÓÐÐí¶àÓ¦ÓóÌÐò£¨ÓÈÆäÊÇÔÚÂþÑÜʽÇéÐÎÖУ©£¬ÄÇôÎÒÃÇÐèÒªÔÚÐí¶àµØ·½ÉèÖóػ¯Æ÷¡£¸ü²»±Ø˵ÎÒÃÇÈÔÈ»¿ÉÄִܵïЧÀÍÆ÷¶ËµÄÅþÁ¬¼ÆÊýÏÞÖÆ£¬ÓÉÓڳػ¯Æ÷Ï໥²»Ïàʶ¡£ÓµÓÐÐí¶àÅþÁ¬³ØÒ²»áµ¼Ö¸ü¸ßµÄ×ÊԴʹÓÃÂÊ£¬²¢ÇÒͨ³£ÐÔÄܽϵ͡£
ÎÒÃÇ»¹¿ÉÒÔʹÓÃλÓÚÓ¦ÓóÌÐòºÍÊý¾Ý¿âÖ®¼äµÄÍⲿÅþÁ¬³Ø¡£Õâ¿ÉÒÔÓëí§ÒâÊýÄ¿µÄÓ¦ÓóÌÐòÒ»ÆðʹÓ㬲¢ÈÃÎÒÃÇÄܹ»×¼È·¿ØÖÆÅþÁ¬ÏÞÖÆ¡£¼¯ÖÐʽÅþÁ¬³Ø»¹¿ÉÒÔ¸üºÃµØ¿ØÖÆ×ÊÔ´£¬ÈÃÎÒÃÇʵÏÖ¹ÊÕÏתÒÆ»ò¸ºÔØ·ÖÅÉ¡£
ÍⲿÅþÁ¬³ØÒ²ÓÐһЩÈõµã¡£Ê×ÏÈÒ²ÊÇ×îÖ÷ÒªµÄ£¬ËüÊÇÎÒÃÇÐèÒªËæ×Åʱ¼äµÄÍÆÒÆ×°Öá¢ÉèÖᢵ÷½âºÍά»¤µÄÁíÒ»¸ö×é¼þ¡£ÎÒÃÇ»¹ÐèÒªÖØÐÂÉèÖÃÿ¸öÓ¦ÓóÌÐòÒÔʹÓÃÅþÁ¬³Ø£¨ÕâÓ¦¸ÃÏñ¸ü¸ÄһЩÅþÁ¬×Ö·û´®²¢ÖØа²ÅÅÓ¦ÓóÌÐòÒ»Ñù¼òÆÓ£©¡£Íⲿ³Ø»¯Æ÷»¹»áÔöÌíһЩÍøÂçÑÓ³Ù£¬ÓÉÓÚËüÊÇÓ¦ÓóÌÐòºÍÊý¾Ý¿âÖ®¼äµÄÁíÒ»¸öÍøÂç×é¼þ¡£
ÍⲿÅþÁ¬³Ø»¯Æ÷Ò²¿ÉÄܳÉΪ¹ÊÕϵ㡣ÈôÊdzػ¯Æ÷ÓÉÓÚijÖÖÔµ¹ÊÔÓɶø¹Ø±Õ£¬Ó¦ÓóÌÐò½«ÎÞ·¨ÔÙÅþÁ¬µ½Êý¾Ý¿â¡£ÈôÊdzػ¯Æ÷ËÙÂÊ»ºÂý»òЧÂʵÍÏ£¬Ôò»áÓ°ÏìËùÓÐʹÓÃËüµÄÓ¦ÓóÌÐò¡£Òò´Ë£¬³Ø»¯Æ÷±ØÐè¾ßÓиßÖÊÁ¿£¬²Å²»»á½µµÍÕûÌåÐÔÄÜ¡£
³Ø»¯ÀàÐÍ
ÿ¸ö³Ø»¯Æ÷ÐèÒª¾öÒéÔõÑù½«ÅþÁ¬·ÖÅɸø¿Í»§¶Ë¡£Í¨³£ÓÐÈýÖÖÒªÁì¡£
µÚÒ»ÖÖÊǻỰ³Ø¡£ÔÚÕâÖÖÒªÁìÖУ¬ÅþÁ¬ÔڻỰһÁ¬Ê±¼äÄÚ·ÖÅɸø¿Í»§¶Ë£¨Ö±µ½¿Í»§¶Ë¶Ï¿ªÅþÁ¬»òµÖ´ï³¬Ê±£©¡£ÕâÊÇ×î¼òÆÓµÄÒªÁ죬¿ÉÊÇ£¬ÕâÓÐÓõØÏÞÖÆÁË¿Í»§¶ËÊýÄ¿£¬ÓÉÓÚͨ³£Ã¿¸ö¿Í»§¶ËÏûºÄÒ»¸öÅþÁ¬¡£
ÏÂÒ»¸ö½â¾ö¼Æ»®ÊÇÊÂÎñ³Ø¡£ÔÚ´ËÒªÁìÖУ¬³Ø³ÌÐòΪÿ¸öÊÂÎñ·ÖÅÉÅþÁ¬£¬²¢ÇÒ½öÔÚÊÂÎñÒ»Á¬Ê±¼äÄÚ·ÖÅÉÅþÁ¬¡£ÈôÊÇ¿Í»§¶ËÏëÒªÔËÐÐÁíÒ»¸öÊÂÎñ£¬ËûÃÇÐèÒª»ñµÃÁíÒ»¸öÅþÁ¬£¨²¢ÇÒ¿ÉÄÜÐèÒªÆÚ´ýÆäËûÅþÁ¬¿ÉÓã©¡£ÕâÔÊÐí³Ø»¯Æ÷´¦Àí¸ü¶à¿Í»§¶Ë£¬²¢ÇÒÊÇÍƼöµÄÒªÁì¡£
×îºóÒ»ÖÖÒªÁìÊÇΪÿ¸ö SQL Óï¾ä×ÔÁ¦·ÖÅÉÅþÁ¬¡£ÀíÂÛÉÏ£¬Õâ»á´øÀ´×î¸ßµÄÎÞаÐÔºÍÅþÁ¬Ê¹ÓÃÂÊ¡£¿ÉÊÇ£¬Õâ»áµ¼ÖÂÒ»ÏîÊÂÎñ¿çÔ½¶à¸öÅþÁ¬¡£ÓÉÓÚÐí¶àÊÂÎñÉèÖÃÓëÅþÁ¬Ïà¹Ø£¬Õâ¿ÉÄÜ»á³ÉΪÊÖÒÕÏÞÖÆ¡£
ÅþÁ¬³Ø½â¾ö¼Æ»®
ƾ֤ÄúʹÓõÄÊý¾Ý¿âÀàÐÍ£¬¿ÉÄÜÓÐһЩÄÚÖõĽâ¾ö¼Æ»®£¬»òÕßÄú¿ÉÄÜÐèÒªÊÖ¶¯ÉèÖÃËüÃÇ¡£ÈÃÎÒÃÇ¿´Ò»Ð©Ê¾Àý¡£
ÄÚÖýâ¾ö¼Æ»®
ƾ֤ÄúµÄ»ù´¡ÉèÊ©ÌṩÉÌ£¬ÄúÒ²ÐíÄܹ»Ê¹ÓÃÄÚÖûò½üÄÚÖýâ¾ö¼Æ»®£º
Neon PostgreSQL Êý¾Ý¿âÓÐÒ»¸öÄÚÖÃµÄ PgBouncer
Supabase ÓÐÒ»¸öÄÚÖÃµÄ Supavisor
ÊÊÓÃÓÚ PostgreSQL µÄ Azure Êý¾Ý¿âÖ§³ÖÄÚÖà PgBouncer
DigitalOcean µÄ PostgreSQL °üÀ¨ PgBouncer
Azure Êý¾Ý¿â¿ÉÓë ProxySql
Azure Êý¾Ý¿â¿ÉÓë Heimdall Êý¾Ý¿âÊðÀíÒ»ÆðʹÓÃ
ADO.NET Ö§³ÖÄÚÖÃÅþÁ¬³Ø
Oracle Ö§³ÖͨÓÃÅþÁ¬³Ø¹ØÓÚ JDBC
Oracle ×ÔÖÎÊý¾Ý¿âÖ§³ÖÊý¾Ý¿âפÁôÅþÁ¬³Ø
Íⲿ½â¾ö¼Æ»®
Äú¿ÉÒÔʹÓÃÐí¶àÍⲿ½â¾ö¼Æ»®Ê¹Óãº
Amazon RDS ÊðÀí
Pgpool
PgBouncer
°ÂµÂÈü
Heimdall Êý¾Ý¿âÊðÀí
ProxySQL
pgcat
°¸ÀýÑо¿£ºÉèÖà PgBouncer
ÔÚ´ËʾÀýÖУ¬ÎÒÃǽ«Ñо¿ PgBouncer¡£
ÎÒÃÇÊ×ÏÈƾ֤ÎĵµÖеķ½·¨×°ÖÃËü¡£
È»ºóÎÒÃÇÐèÒªÉèÖÃËü¡£×îÖ÷ÒªµÄÉèÖÃÊÇ£º
pool_mode£ºÈçÄÇÀïÖÃÅþÁ¬£»ÎÒÃÇ¿ÉÒÔʹÓÃÊÂÎñ
max_client_conn£ºÉèÖÿÉÒÔÅþÁ¬µ½ÅþÁ¬³ØµÄ¿Í»§¶ËÊýÄ¿
default_pool_size£ºÉèÖÃÔÊÐí¼¸¶à¸öЧÀÍÆ÷ÅþÁ¬¹ØÓÚÿ¸öÓû§Êý¾Ý¿â
min_pool_size£ºÒª±£´æ¼¸¶à¸ö±¸ÓÃÅþÁ¬
ÉèÖóػ¯Æ÷ºó£¬ÎÒÃÇ¿ÉÒÔʹÓÃpgbenchÑéÖ¤ÆäÐÔÄÜ£º
pgbench -c 10 -p -j 2 -t 1000 database_name
µÇ¼ºó¸´ÖÆ
PgBouncer ¿ÉÒÔÇáËɵؽ«Ã¿ÃëÊÂÎñÊýÔöÌí 60%£¬Èç»ù×¼²âÊÔËùʾ£º
¶Ô PostgreSQL ÅþÁ¬³Ø¾ÙÐлù×¼²âÊÔ£ºPgBouncer¡¢PgCatºÍ Supavisor
ͨ¹ýÅþÁ¬³ØÌá¸ßÊý¾Ý¿âÐÔÄÜ
ʹÓà PgBouncer ÔöÇ¿ PostgreSQL
×ܽá
ÅþÁ¬³Ø¿ÉÒÔÌá¸ßÐÔÄܲ¢ïÔÌ×ÊÔ´ÏûºÄ¡£ÓÐÐí¶àÄÚÖýâ¾ö¼Æ»®¿ÉÒÔÇáËɵØÓëÎÒÃǵÄÊý¾Ý¿âÒ»ÆðʹÓã¬ÎÞÂÛÎÒÃǽ«ËüÃÇÍйÜÔÚÄÇÀïÒÔ¼°ÎÒÃÇʹÓÃʲôÊý¾Ý¿âÒýÇæ¡£ÎÒÃÇÐèÒª¼Ç×Å£¬ÅþÁ¬³ØÊÇÁíÒ»¸ö¹ÊÕϵ㣬ÐèҪСÐÄ´¦Àí¡£ÉèÖÃÓÅÒìµÄÅþÁ¬³Ø¿ÉÒÔʹÿÃëµÄÊÂÎñÊýÄ¿ÔöÌí½üÒ»±¶£¬´Ó¶ø¼«´óµØÌá¸ßÐÔÄÜ¡£
ÒÔÉϾÍÊÇÉèÖÃÅþÁ¬³ØµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡