Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
»ùÓÚPostgreSQLµÄÄÚ´æ¼ÆËãÒýÇæ£¬À´×ÔLenovoµÄÉè¼Æ¿ª·¢¾­Ñé
 
À´Ô´£ºInfoQ ·¢²¼ÓÚ£º 2017-6-29
  3602  次浏览      28
 

±³¾°½éÉÜ

Éí´¦´óÊý¾Ýʱ´ú£¬ÔÚÊý¾Ý¿âÁìÓò£¬ÎÒÃÇÒª·ÖÎö´¦ÀíµÄÊý¾ÝÔ½À´Ô½¶à£¬ÎÒÃÇ·ÖÎö´¦ÀíÊý¾ÝµÄËÙ¶ÈÒ²ÒªÔ½À´Ô½¿ì£¬µ«ÊÇ´«Í³Êý¾Ý¿â»ùÓÚ´ÅÅ̵ļÆËãÄ£ÐÍ£¬ÒѾ­ÄÑÒÔÂú×ãÎÒÃǵÄÐèÇó¡£ÐÒÔ˵ÄÊÇËæ×ÅÓ²¼þµÄ·¢Õ¹£¬ÄÚ´æÉ豸µÄÐÔÄÜÔÚ²»¶ÏÌá¸ß£¬¶ø¼Û¸ñÈ´ÔÚ²»¶ÏϽµ¡£ÄÚ´æ¼ÆËã¼¼Êõ½«´ø×ÅÎÒÃÇ¡°·É¡±ÆðÀ´£¡

ÄÚ´æ¼ÆË㣨In-Memory Computing£©£¬ÊµÖÊÉÏÊÇ CPU Ö±½Ó´ÓÄÚ´æ¶ø·ÇÓ²ÅÌÉ϶ÁÈ¡Êý¾Ý£¬²¢¶ÔÊý¾Ý½øÐмÆËã¡¢·ÖÎö¡£ÔÚÊý¾Ý¿âÉÏÒýÈëÄÚ´æ¼ÆËã¼¼Êõ£¬Òâζ×ÅÈ¥³ý´ÅÅÌ IO µÄÏûºÄ£¬ÀûÓÃÄÚ´æËæ»ú·ÃÎʵÄÌØÐÔ¿ÉÒÔÖÆ¶¨¸ü¸ßЧµÄËã·¨µÈµÈ¡£Õâ¶¼¼«´óµÄÌá¸ßÊý¾ÝµÄ´¦ÀíËÙ¶È¡£

ĿǰºÜ¶àÉÌÒµÊý¾Ý¿âÒѾ­ÓµÓÐÁËÄÚ´æ¼ÆË㹦ÄÜ£¬Èç SAP HANA¡¢DB2 BLU¡¢Oracle 12C¡¢SQL Server 2014¡£µ«ÊÇÉÌÒµÊý¾Ý¿âµÄ¼Û¸ñ±Ï¾¹²»·Æ£¬ÔÚ¿ªÔ´²úÆ··ÉËÙ·¢Õ¹µÄ½ñÌ죬ÀûÓÿªÔ´µÄÄÚ´æ¼ÆËã²úÆ·ÊÇÒ»¸öºÃÖ÷Òâ¡£

ͼ 1 Êý¾Ý¿â²úƷʹÓÃÅÅÃû

´Óͼ 1 ÎÒÃÇ¿ÉÒÔ¿´µ½£¬Ä¿Ç°¿ªÔ´µÄÊý¾Ý¿âʹÓñȽ϶àµÄÊÇ MySQL¡¢Redis¡¢PostgreSQL µÈµÈ¡£Redis¡¢MemCached ÊÇ KV ÀàÐ͵ÄÄÚ´æÊý¾Ý¿â£¬²»Ö§³Ö¹ØÏµÄ£ÐÍ£¬½ö×÷Ϊ¹ØÏµÐÍÊý¾Ý¿âµÄ»º´æ¡£MySQL Ö§³Ö In-Memory ÒýÇæ£¬µ«ÊDz»Ö§³ÖÊý¾ÝµÄ³Ö¾Ã»¯£¬²»Ö§³ÖÁд洢¡£»ùÓÚÕâÖÖÇé¿ö£¬ÎÒÃÇ´òË㿪·¢Ò»Ì×»ùÓÚ¿ªÔ´¹ØÏµÐÍÊý¾Ý¿âÖ®ÉϵÄÄÚ´æ¼ÆËãÒýÇæ£¬ÊµÏÖÖ§³ÖÄÚ´æ¼ÆË㣬Êý¾Ý³Ö¾Ã»¯£¬²¢ÐмÆËãµÈÌØÐÔ¡£

ΪʲôѡÔñ PostgreSQL£¿

ËäÈ»¾ö¶¨×Ô¿ª·¢£¬µ«ÊÇÕ¾ÔÚ¾ÞÈ˵ļç°òÉÏÊÇÒ»¸öºÃÖ÷Ò⣡ÎÒÃǾö¶¨»ùÓÚ PostgreSQL ¿ª·¢Ò»¸öÄÚ´æ¼ÆËãµÄÒýÇæ£¬¾ßÌåÀíÓÉÈçÏ£º

1.PostgreSQL µÄÐí¿ÉÖ¤·Ç³£¿ª·Å£¨BSD ЭÒ飩£¬¼òµ¥À´Ëµ£¬Äã¿ÉÒÔÍü¼ÇÐí¿ÉÖ¤µÄÎÊÌâ¡£

2.PostgreSQL ÌṩÍêÉÆµÄÍⲿ±í£¨FDW£ºForeign Data Wrapper£©À©Õ¹¿ª·¢»úÖÆ£¬¿ÉÒÔºÜÈÝÒ׵Ŀª·¢Âú×ã×ÔÉíÐèÇóµÄ²å¼þ¡£

3.PostgreSQL µÄ×ÔÉíÎȶ¨ÐԺܸߣ¬»ùÓÚ PostgreSQL ¿ª·¢²úÆ·£¬²»Óõ£ÐÄÎȶ¨ÐÔµÄÎÊÌâ¡£

4.ÔÚ¿ªÔ´ÉçÇøÉÏÓкܶà PostgreSQL µÄÀ©Õ¹²å¼þ£¬¿ÉÒÔ½è¼ø¡£

5.¿ÉÒÔËæ×Å PostgreSQL µÄÉçÇø°æ±¾½øÐеü´ú¡£

6.ÓÉÓÚ PostgreSQL µÄѧԺÅÉ·ç¸ñ¡£PostgreSQL µÄ´úÂëÖÊÁ¿ºÜ¸ß£¬±ãÓÚÔĶÁѧϰ¡£

ÄÚ´æ¼ÆËãÒýÇæµÄÉè¼ÆË¼Â·

Êý¾ÝÐèÒª´æ´¢ÔÚÄÚ´æÉÏ£¬ÓÉÓÚ PostgreSQL ÌṩÁËÍⲿ±í£¨FDW£©¸ÅÄ¿ÉÒÔͨ¹ý API À´¶ÔÊý¾Ý½øÐйÜÀí£¬ÆÕͨ˼άÊÇÍⲿ±í¶ÔÓ¦µÄÊÇÔ¶³ÌÊý¾Ý¿â»òÕ߯äËûÊý¾ÝÀ´Ô´£¬µ«ÊÇÎÒÃÇÌá³öÒ»¸ö¸ÅÄîÊǽ«Õâ¸ö FDW ¶ÔÓ¦³ÉÄڴ棬ÕâÑùͨ¹ý¿ª·¢À©Õ¹²å¼þÀ´ÊµÏÖ£¬²»Ó°Ïì PostgreSQL Éý¼¶´øÀ´µÄµü´úÎÊÌ⣬Ҳ²»ÐèÒªÐÞ¸ÄÄÚºËÔ´Âë¡£Êý¾Ý³£×¤Äڴ棬ֻÊǼòµ¥µÄ½â¾öÁËÊý¾Ý¿â IO µÄÎÊÌ⣬ֻÄܽÚÊ¡ IO µÄʱ¼ä£¬²¢²»ÄÜ´øÀ´¼ÆËãÉÏÖʵķÉÔ¾£¬ÎÒÃDzâÊÔ¹ý£¬Ö»Êǽ«Êý¾Ý Cache µ½ÄÚ´æÖУ¬ÐÔÄÜÖ»ÓÐ 1-2 ±¶µÄÌáÉý¡£Èç¹û˵Éè¼ÆºÃ´æ´¢£¬ÀûÓÃÁÐʽ´æ´¢½«Êý¾Ý·ÖÌõ´ø·Ö¿é£¬Í¨¹ý¶àÏ̶߳ÔÊý¾Ý½øÐмÆË㣬ÿ¸öÏ̻߳¥²»¸ÉÈŵÄɨÃè²¢¼ÆËãËù·ÖÅäµÄÌõ´ø£¬ÕâÑù¶ÔÄÚ´æ¼ÆËãÀ´ËµÄܹ»´ïµ½ÖʵķÉÔ¾£¬ÕâÒ²ÊÇËùÓг£¼ûÊý¾Ý¿âËù×·ÇóµÄ¡£

Íⲿ±í (FDW)

 

ͼ 2 Íⲿ±í͸Ã÷·ÃÎÊ

Íⲿ±í£ºÔÚ PostgreSQL ÄÚ²¿ÌṩһÖÖ±íÀàÐÍ£¬Äܹ»ÌṩÓû§·ÃÎÊÍⲿԴÊý¾ÝµÄÒ»ÖÖ·½Ê½£¬ÕâÊÇ PostgreSQL ×÷ΪѧԺÅÉÉè¼Æ±È½ÏÓÅÃÀµÄµØ·½£¬Å¬Á¦´òÔì³ÉÊÀ½çµÄÖÐÐÄ£¬Ìṩ¸ø¿ª·¢ÈËÔ±åÚÏëµÄ¿Õ¼ä¡£

ÁÐʽ´æ´¢

Èçͼ 3 Ëùʾ£¬½«Ò»ÕÅ±í½øÐкáÏòÇиî²úÉúÁË stripe£¬stripe ÊÇÓɶà¸ö¿éÊý×é¹¹³É£¬blockArray ÊǶàÁÐµÄ block Êý¾Ý£¬block ÊÇÓɵ¥ÁеĶà¸öÐÐÊý¾Ý×é³É£¬ÔÚ¶ÔÊý¾Ý½øÐÐË÷Òýʱ£¬Ö»ÐèҪͨ¹ý stripeNum¡¢blockArrayNum¡¢blockRowNum ÄÜË÷Òýµ½ÐУ¬ÕâÑù×é³ÉÁË RowID¡£

ͼ 3 ÄÚ´æÁÐʽ´æ´¢

×¢£ºblockArrayNum:DEFAULT is 15blockRowNum:DEFAULT is 10000RowID = stripeNum + blockNum + blockRowNum(¡°+¡±ºÅÊÇÆ´½Ó)

¶Ô×Ö·û´®´æ´¢Ê¹ÓÃÁË Hash ×Öµä±í£¬×Ö·û´®´æ´¢¹ý³ÌÖлáÔÚ Hash ±íÖжÔÓ¦Ò»¸ö 8 ×Ö½ÚµÄ MapCode£¬ÔÚ½øÐÐ×Ö·û´®±È½Ï¹ýÂË»òÕß¶Ô×Ö·û´®½øÐÐ Join ¼ÆËãʱ£¬Ö»ÐèÒª¶Ô MapCode Öµ½øÐбȽϻòÕß¶Ô MapCode Öµ½øÐÐÅÅÐò¶ø²»ÊǶÔ×Ö·û´®½øÐбȽϻòÕßÅÅÐò£¬ÕâÑù²»½ö´øÀ´ÁËЧÂÊÉϵÄÌáÉý£¬¶øÇÒ»¹½ÚÊ¡Á˿ռ䡣ÔÚ´æ´¢ÖвÉÓ÷ÖÌõ´ø·Ö¿éµÄ¸ÅÄÕâÑùµÄ´æ´¢Ä£ÐÍΪ¶àÏ̼߳ÆËã×öºÃÁËÍêÃÀÆÌµæ¡£

ÄÚ´æ¼ÆËã

ÔÚ¶ÔÄÚ´æ¼ÆËã·ÖÎö֮ǰÐèÒªÌá³öÒ»¸ö¸ÅÄ¶ÔÊý¾ÝÁе¥¸öµÄÈ¡³ö»òÕßÁ½¸öÁеÄÈ¡³ö¶¼³ÆÖ®ÎªÐòÁÐ (Time Series)£¬ÐòÁÐÊÇ×Ô¶¨ÒåµÄÒ»ÖÖÀàÐÍ£¬ÎÒÃÇ´òÔìÊÇËùÓÐÀàÐͽÔÐòÁУ¬ÈçÏÂÃæµÄÀý×Ó£º

SQL£ºselect sum(c1 + 1) from table where c2>10;-> select cs_sum(cs_filter(c2>10,c1) + 1) from table_get();

ͼ 4 ÄÚ´æ¼ÆËãÁ÷³Ì

¶Ôͼ 4 µÄ·ÖÎöÈçÏ£º

ÎÒÃÇÊǽ«Õû¸ö SQL Óï¾ä·­Òë³É UDF º¯ÊýÀ´½øÐÐÖ´ÐУ¬Í¨¹ýÕâÑùµÄ·­Òë»áÉú³ÉÈçͼ 4 ËùʾµÄÒ»¸öÊ÷Ðνṹ£¬µ±ÖеÄÿ¸ö½Úµã¶¼ÊǶÔÓ¦µÄÒ»¸ö Iterator£¬µ±¼üÈë´øÓÐ UDF µÄ SQL Óï¾äºó£¬×¼±¸¹¤×÷ÏÈÉú³É Iterator µÄ½á¹¹Ê÷£¬ÔÚ¶Ô SUM ÖµÊä³öʱ²Å¿ªÊ¼½øÐмÆËã¡£

C2>10 ÊÇÒ»¸ö¹«Ê½£¬ÔÚµü´úÆ÷ÖнøÐеÄÊÇ C2 Óë³£Êý 10 µÄ±È½Ï£¬Âú×ãÌõ¼þµÄ»á·µ»ØÐòÁÐ (Time Series), ÔÚ¹ýÂ˹ý³ÌÖзµ»ØµÄÐòÁÐÆäʵÊÇÒ»¸ö Bitmap£¬Í¨¹ýÕâ¸ö Bitmap ¿ÉÒÔÖªµÀ C1 Õâ¸öÐòÁÐÄÄЩ¼Ç¼±»Ñ¡ÖУ¬ÔÙ¶ÔÑ¡Öзµ»ØµÄÐòÁнøÐÐ Add ²Ù×÷£¬×îÖÕ·µ»Ø SUM ½á¹û¡£

²¢ÐмÆËã

Ê×ÏȶàÏß³ÌÊÇͨ¹ý²ÎÊýÅäÖÃÆô¶¯¶àÉÙ¸öÏß³ÌÀ´Íê³ÉÕâ´Î¼ÆË㣬ÅäÖÃÑ¡ÏîÔÚ postgres.conf Îļþ£¬Ä¬ÈÏÇé¿öÊǵ¥Ï̼߳ÆË㣬Èç¹ûÅäÖÃÁË»á¸ù¾ÝÅäÖÃÊýÁ¿À´½øÐÐÆô¶¯ nthreads ¸öÏ̡߳£

֮ǰҲÌáµ½¹ýÓÉÓÚʹÓÃÁË·ÖÌõ´ø·Ö¿é£¬Òò´Ë²¢ÐмÆËã²»ÊÇÎÊÌâÁË£¬ÒÔÏÂÊDzð·ÖÌõ´øµÄ¼ä¸ô

Interval = (stripe_last ¨C stripe_first + nthreads)/nthreads

²¢ÐÐÖа´ÕÕÕâ¸ö¼ä¸ôÀ´¶ÔÌõ´ø½øÐÐɨÃè²¢¼ÆË㣬»¹ÊÇÒÔ SUM ΪÀý¡£

ͼ 5 ²¢ÐмÆËã·ÖÎö

Èçͼ 5 Ëùʾ£¬Ã¿¸öÏ̶߳¼Ö»É¨ÃèËù·ÖÅäµÄÌõ´øºÅ²¢½øÐмÆË㣬×îÖÕ½«¸÷¸öÏ̵߳ļÆËã½á¹û merge£¬×îÖյõ½¼ÆËã½á¹û¡£

ÄÚ´æ¼ÆËãÒýÇæµÄÓÅ»¯ Join

ÓÉÓÚʹÓõÄÊÇÁÐʽ´æ´¢£¬Òò´ËÓëÔ­Éú PostgreSQL ÐÐʽ¼ÆËãÒýÇæÓкܴóµÄ²»Í¬£¬µ«ÊÇʵÏÖµÄÔ­ÀíÒÔ¼°Ëã·¨¶¼ÊÇÄ£·Â PostgreSQL ÄÚ²¿ÊµÏÖ£¬Ö§³ÖÈýÖÖ Join ·½Ê½£ºNestloop Join¡¢Sort Merge Join¡¢Hash Join¡£

Nestloop

ʵÏÖ·½Ê½£º

²Î¼ûα´úÂ룬Nestloop ʵÏֵķ½Ê½±È½Ï¼òµ¥£¬Í¨¹ý for Ñ­»·½øÐÐǶÌ×ʵÏÖ£¬ËùÒÔ¸´ÔÓ¶ÈÊÇ O(N*M)¡£

·ÖÎö£º ±È½ÏͨÓõÄÁ¬½Ó·½Ê½£¬·ÖΪÄÚÍâ±í£¬Ã¿É¨ÃèÍâ±íµÄÒ»ÐÐÊý¾Ý¶¼ÒªÔÚÄÚ±íÖвéÕÒÓëÖ®ÏàÆ¥ÅäµÄÐУ¬¶ÔÓÚ±»Á¬½ÓµÄÊý¾Ý×Ó¼¯½ÏСµÄÇé¿ö£¬Nestloop Á¬½ÓÊǸö½ÏºÃµÄÑ¡Ôñ¡£

Sort Merge Join

ʵÏÖ·½Ê½£º

²Î¿¼ PostgreSQL ÖÐÌṩµÄα´úÂë·ÖÎö£¬Ê×ÏȶÔÁ½¸ö±í×ö Join µÄÁ½ÁнøÐÐÅÅÐò£¬ÓÉÓÚÎÒÃÇÊÇÁд洢£¬Õâ¸ö²Ù×÷·Ç³£ÈÝÒס£½ÓÏÂÀ´±éÀúÁ½¸ö±í£¬Èç¹ûºÏÊÊ·ÅÈë½á¹û¼¯£¬ÒÀ´Î´¦ÀíÖ±µ½½«Á½±íµÄÊý¾ÝÈ¡Íê¡£

·ÖÎö£ºmerge join ÐèÒªÔÚÅÅÐòÉÏ»¨Ò»²¿·Ö¿ªÏú£¬ÅÅÐòºóÔËËã³É±¾½Ó½üÈ«±íɨÃèÁ½¸ö±íµÄ³É±¾Ö®ºÍ¡£ÔÚÒѾ­ÅÅÐòµÄÌõ¼þÏ£¬ÕâÖÖ join ·½Ê½¾ßÓо޴óÓÅÊÆ¡£

hash join

ͼ 6 hash join ʵÏÖ·ÖÎö

ʵÏÖ·½Ê½£º¶ÔÓÚÒª×ö join µÄÁ½ÕÅ±í£¬Ê×ÏȽ«Ð¡±íת»»³É hash map£¬È»ºóɨÃè´ó±íµÄÿһÐÐÊý¾Ý£¬¼ÆËãÐÐÊý¾ÝµÄ hash Öµ£¬Ó³Éä hash map£¬¿ÉÒԵõ½Æ¥ÅäµÄÐС£

·ÖÎö£ºµ±±í±È½Ï´óµÄʱºò£¬²ÉÓà hash join ÊDZȽÏÓÐÓÅÊÆµÄ¡£ÔËËã³É±¾½Ó½üÈ«±íɨÃèÁ½¸ö±íµÄ³É±¾Ö®ºÍ¡£µ±È»Õâ»áÀË·ÑÒ»¶¨µÄÄÚ´æ¿Õ¼ä£¬²»¹ý¼ÈÈ»ÎÒÃÇÊÇÄÚ´æ¼ÆËãÒýÇæ£¬ÄÚ´æ¿Õ¼äÏÔÈ»²»ÊÇÎÊÌâ¡£ÓÉÓÚ²ÉÓà hash ×ֵ似Êõ£¬×Ö·û´®Êý¾ÝÔÚ±íÖÐʵ¼ÊÉÏ´æ´¢µÄÊÇ×Ö·û´®¶ÔÓ¦µÄ hash Öµ£¬ÕâÑùÔÚ×ö hash join µÄʱºò£¬ÎÒÃÇÑ¡Ôñ×Ö·û´®µÄÁÐÈ¥×ö join µÄ»°£¬ÎÒÃǽ«¸ü¿ìµÄµÃµ½½á¹û¡£

³Ö¾Ã»¯

¼ÈÈ»ÊÇÄÚ´æÒýÇæ»á³öÏֶϵçÊý¾Ý¶ªÊ§µÄÎÊÌ⣬Òò´ËÎÒÃÇÔÚÉè¼ÆÖ®³õ¿¼Âǵ½ÁËÕâ¸öÎÊÌ⣬Ìí¼ÓÒ»¸ö¿ÉÅäÖõŦÄܳ־û¯£¬Ö»ÒªÅäÖøÃÑ¡ÏîÊǰѳ־û¯ switch ´ò¿ª£¬ÔÚ´´½¨ÄÚ´æÍⲿ±íʱ£¬»áͬʱ´´½¨ PostgreSQL Ô­Éú±í£¬¸Ã±íµÄ²åÈë²Ù×÷ÊÇ»á½øÐÐ Wal ÈÕÖ¾¼Ç¼ÒÔ¼°ÂäÅÌ£¬ÔÚ¶ÔÄÚ´æ½øÐÐÔöɾ¸Ä²Ù×÷ʱ£¬»áÏȽ« sql ¿½±´Ò»·Ý£¬²¢½«ÔÚ PostgreSQL Ô­Éú±íÖÐÏÈÖ´ÐÐÒ»±é£¬È»ºóÔÙ¶ÔÄÚ´æÍⲿ±í²Ù×÷£¬ÕâÑù±£Ö¤ÁËÊý¾ÝµÄ³Ö¾Ã»¯ÁË£¬Êý¾Ý¶¼¿ÉÒÔ´ÓÔ­Éú±íÒÔ¼° Wal ÈÕÖ¾ÖлñÈ¡¡£

ͼ 7 Êý¾Ý³Ö¾Ã»¯¹ý³Ì

²âÊÔ¶Ô±È

²âÊÔ»·¾³£º

Server Specs: Physical Server, 24 Cores, 128G RAM
Test Products: LeMCS; PostgreSQL ; DB2
Data Volume: 2 tables , 30GB£¬800w Ìõ¼Ç¼ºÍ 1300w Ìõ¼Ç¼

²âÊÔ½á¹û£º

ͼ 8 ²âÊÔ¶Ô±È

Èçͼ 8 Ëùʾ£¬LeMCS ÔÚ¶Ô±È PostgreSQL Ô­Éú±í²âÊÔÖУ¬¼ÆËãËٶȶ¼Äܹ»¿ìµ½ 5x-30x¡£

¸½²âÊÔ sql£º

×¢£ºLeMCS ¾ùʹÓõÄÊÇ UDF º¯ÊýÌæ»»½øÐвâÊÔ

ºóÐø¿ª·¢

ͨ¹ýÔËÓÃÒÔÉϵļ¼ÊõÊÖ¶ÎʵÏÖµÄÄÚ´æ¼ÆËãÒýÇæ£¬ÒÔ²å¼þµÄÐÎʽǶÈë PostgreSQL Êý¾Ý¿âÖУ¬Ä¿Ç°Í¨¹ý²âÊÔʹÓÃÕý³££¬´ïµ½ÎÒÃÇÖ®Ç°ÖÆ¶¨µÄÄ¿±ê¡£µ±È»ºÜ¶àÎÊÌâÐèÒªºóÐø¿ª·¢½øÐнâ¾ö¡£Ä¿Ç°ËùÓжÔÄÚ´æÖбíµÄ·ÃÎʶ¼ÊÇͨ¹ý×Ô¶¨Ò庯Êý£¨UDF£©À´ÊµÏֵģ¬ÎªÁ˱ãÓÚʹÓã¬ÎÒÃÇÕýÔÚ¿ª·¢¶ÔÓÚ±ê×¼ SQL µÄÖ§³Ö¡£ºóÐøÎÒÃǻὫÕâ¿î¹¤¾ß·¢²¼³öÀ´£¬ÓëÓÐÐèÒªµÄͬѧ·ÖÏí£¬´ó¼ÒÒ»ÆðʹÓò¢³ÖÐø¿ª·¢£¬°ÑÕâ¿î¹¤¾ß´òÔìµÄ¸ü¼ÓÇ¿´ó£¬°ïÖú¸ü¶àµÄÈË¡£

   
3602 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ