Class
- Tip&Tech
[DBMS] MySQL ¾²¸é¼ ÇÏÁö ¸»¾Æ¾ß ÇÒ °Í 17°¡Áö | |||||
±Û¾´ÀÌ | higher | ³¯ Â¥ | 11-10-08 23:40 | Á¶ ȸ | 12194 |
---|---|---|---|---|---|
°£ÆíURL |
https://phpschool.com/link/tipntech/74384
|
||||
Link1 | http://xeraph.com/4286421 (594) | ||||
Ãâó->http://xeraph.com/4286421
mysql·Î ÀÛ¾÷À» Çϸ鼵µ ÆÛÆ÷¸Õ½º¿¡ ´ëÇÑ ÀÌÇغÎÁ·À¸·Î ¾î¶²½ÄÀ¸·Î µðºñ¸¦ ±¸¼ºÇÏ°í Å×À̺íÀ» ÀÛ¼ºÇØ¾ß ÁÁÀº È¿À²À» ³»°Ô µÉ°ÍÀΰ¡¿¡ ´ëÇØ ³ª¸§ °í¹Î ÇØ ¿Ô¾ú½À´Ï´Ù. À̱ÛÀº ±×·± °í¹Î¿¡´ëÇØ ¾î´ÀÁ¤µµ´Â ¹æÇâÀ» Á¦½ÃÇØ ÁÖ´Â ±ÛÀ̾ú´ø°Í °°½À´Ï´Ù. ¹°·Ð ÀÌ ³»¿ë¿¡ ´ëÇØ ´Ù ÀÌÇØÇÏ°í ¶Ç ´Ù¸¥ °üÁ¡À¸·Î º¸½Ã´Â °í¼ö´ÔµéÀÌ ½ºÄð¿¡´Â ¸¹ÀÌ °è½Ã°ÚÁö¸¸ ÀÌÁ¦ ½ÃÀÛÇÏ´Â ºÐµé¿¡°Õ ¾î´ÀÁ¤µµ ¹æÇâÀ» Á¦½Ã ÇØÁÙ ¼ö ÀÖÀ»°Í °°¾Æ ¿Å±é´Ï´Ù. ================================================================================================ *MySQL ¾²¸é¼ ÇÏÁö ¸»¾Æ¾ß ÇÒ °Í 17°¡Áö* ÀÛ°Ô »ý°¢Çϱâ - Á¶¸¸°£ ±Ô¸ð°¡ Ä¿Áú°Å¶ó¸é MySQL ecosystemÀ» ºÁ¾ßµÈ´Ù. - ±×¸®°í ij½Ì ºý½Ã°Ô ¾È ÇÏ´Â ¸ÞÀÌÀú À¥»çÀÌÆ®´Â ¾ø´Ù. - develooper.comÀÇ Hansen PT¶û Ilia Æ©Å丮¾ó º¼ °Í - óÀ½ºÎÅÍ È®Àå °¡´ÉÇÏ°Ô ¾ÆÅ°ÅØó Àß ÂÉ°³³ö¾ßµÈ´Ù. - º¹Á¦¶û ÆÄƼ¼Å´× ¾î¶»°Ô ÇÒÁö ¹Ì¸® °èȹ ¼¼¿ö³ö¶ó. - ÆÄÀÏ ±â¹Ý ¼¼¼Ç Á» ¾²Áö¸¶ -_- - ±×·¸´Ù°í ³Ê¹« ¾µµ¥¾øÀÌ Å©°Ô »ý°¢ÇÏÁöµµ ¸» °Í - ƯÈ÷ ¼º´ÉÇÏ°í È®À强 ±¸ºÐ ¸ø ÇÏ¸é ³°¨ÇÔ EXPLAIN ¾È ½áº¸±â - SELECT ¾Õ¿¡ EXPLAIN À̶ó°í ºÙÀ̱⸸ ÇÏ¸é µÇ´Â °ÍÀ» (..) - ½ÇÇà °èȹ È®ÀÎ - ŸÀÔ Ä÷³¿¡ index ½áÀִ°Ŷû Extra Ä÷³¿¡ index ½áÀִ°Ŷû "¸Å¿ì Å«" Â÷ÀÌ ÀÖÀ½ * ŸÀÔ¿¡ ÀÖÀ¸¸é Full À妽º ½ºÄµ (¾È ÁÁ´Ù.) * Extra Ä÷³¿¡ ÀÖÀ¸¸é Covering À妽º ã¾Ò´Ù´Â ÀǹÌÀÓ (ÁÁ´Ù!) - 5.0 ÀÌÈĺÎÅÍ´Â index_merge ÃÖÀûȵµ ÇÑ´Ù. À߸øµÈ µ¥ÀÌÅÍ Å¸ÀÔ ¼±Åà - ÇÑ ¸Þ¸ð¸® ºí·° ´ÜÀ§¿¡ À妽º ·¹Äڵ尡 ¸¹ÀÌ µé¾î°¥¼ö·Ï Äõ¸®°¡ »¡¸® ½ÇÇàµÉ °ÍÀÌ´Ù. (Áß¿ä) - ¾Æ.. Á¤±ÔÈ Á» ÇØ -_-... (ÀÌ°Å Á¤¸» Ãæ°Ý°ú °øÆ÷ÀÎ µí) - °¡Àå ÀÛÀº µ¥ÀÌÅÍ Å¸ÀÔÀ» ½á.. (ÁøÂ¥ BIGINT°¡ ÇÊ¿äÇϳİí..) - À妽º °É¸®´Â Çʵå´Â Á¤¸» ÃÖ¼ÒÇÑÀ¸·Î µ¥ÀÌÅÍ Å©±â¸¦ ½á¾ßµÈ´Ù°í. - IP´Â INT UNSIGNED·Î ÀúÀåÇØ!! (¾ÆÁÖ °ø°¨) * ÀÌ·² ¶§ ¾²¶ó°í INET_ATON ÇÔ¼ö°¡ ¾Æ¿¹ ³»ÀåµÇ¾î ÀÖÀ½. PHP¿¡¼ pconnect ¾²´Â Áþ - ¾ÆÆÄÄ¡¿¡¼ Á»ºñ ÇÁ·Î¼¼½º¶óµµ »ý±â¸é ±× Ä¿³Ø¼ÇÀº ±×³É Áõ¹ßÇϴ°žß.. - ¾îÂ÷ÇÇ MySQL Á¢¼Ó ¼Óµµ´Â OracleÀ̳ª PostgreSQL º¸´Ù 10~100¹è ºü¸£´Ù°í. ³Ê¹« °úµµÇÑ DB Ãß»óÈ °èÃþÀ» µÎ´Â °Í - ¾îµð Æ÷Æà ¿½ÉÈ÷ ÇÒ °Å ¾Æ´Ï¸é Ãß»óÈ °èÃþ ¾²Áö¸¶ (ADODB, MDB2, PearDB µî) - scale out °¡´ÉÇÑ°É ¾²¶ó°í. ½ºÅ丮Áö ¿£Áø ÀÌÇØ ¸ø ÇÏ´Â °Í - ´ÜÀÏ ¿£Áø¸¸À¸·Î Àüü ¾ÆÅ°ÅØó¸¦ °áÁ¤Çß´Ù¸é ´ëºÎºÐ ÃÖÀûÀÌ ¾Æ´Ô - ¿£Áø º° Àå´ÜÁ¡À» °øºÎÇÒ °Í - ARCHIVE : zlibÀ¸·Î ¾ÐÃàÇØÁÖ°í UPDATE ¾È µÇ°í ·Î±× Bulk Insert¿¡ À¯¿ëÇÔ. - MEMORY : ¼¹ö Àç½ÃÀÛÇϸé Áõ¹ß. À妽º°¡ HASH³ª BTREE·Î °¡´ÉÇÔ. ÀÓ½Ã, ¿ä¾à µ¥ÀÌÅÍ¿¡ »ç¿ë. * ÁÖ°£ top X Å×ÀÌºí °°Àº °Í. * ÇÏ¿©Æ° ¸Þ¸ð¸®¿¡ ¹Ú¾Æ³Ö°í ½ÍÀº µ¥ÀÌÅÍ ÀÖÀ¸¸é.. À妽º ·¹À̾ƿô ÀÌÇØ ¸ø ÇÏ´Â °Í - Á¦´ë·Î À妽º¶û ½ºÅ丮Áö ¿£Áø ¼±ÅÃÇÏ·Á¸é °øºÎ Á» ÇØ - ¿£ÁøÀº µ¥ÀÌÅÍ¿Í À妽º ·¹Äڵ带 ¸Þ¸ð¸®³ª µð½ºÅ©¿¡ ·¹À̾ƿôÇÏ´Â °É ±¸ÇöÇÑ °Í - clustered ±¸¼ºÀº µ¥ÀÌÅ͸¦ PK ¼ø¼¿¡ µû¶ó ÀúÀåÇÔ. - non-clustered ±¸¼ºÀº À妽º¸¸ ¼ø¼´ë·Î ÀúÀåÇÏ°í µ¥ÀÌÅÍ´Â ¼ø¼ °¡Á¤ÇÏÁö ¾ÊÀ½. - clustered¿¡¼´Â À妽º¸¸ Ÿ¸é Ãß°¡ÀûÀÎ Á¶È¸ ¾øÀÌ ¹Ù·Î µ¥ÀÌÅÍ °¡Á®¿À´Â °ÍÀÓ. - ±×·¡¼ clustered PK´Â ÀÛÀº ³ðÀ¸·Î ÇÒ ÇÊ¿ä°¡ Àִٴ°Š* ´Ù¸¥ À妽º´Â °¢ ·¹Äڵ帶´Ù PK¸¦ ¾Õ¿¡ ´õ ºÙÀÌ°Ô µÇ´Ï±î. * PK ÁöÁ¤ ¾È ÇÏ¸é ¾Æ¹«·¸°Ô³ª Çعö¸² Äõ¸® ij½Ã ÀÌÇØ ¸ø ÇÏ´Â °Í - ¾îÇø®ÄÉÀÌ¼Ç read/write ºñÀ²Àº ¾Ë°í ÀÖ¾î¾ßÁö - Äõ¸® ij½Ã ¼³°è´Â CPU »ç¿ë°ú Àб⠼º´É °£ÀÇ Å¸Çù - Äõ¸® ij½Ã Å©±â¸¦ ´Ã¸°´Ù°í Àб⠼º´ÉÀÌ ÁÁ¾ÆÁö´Â°Ô ¾Æ´Ô. heavy read¶óµµ ¸¶Âù°¡Áö. - °úµµÇÑ CPU »ç¿ëÀ» ¸·±â À§ÇØ ¹«È¿È ÇÒ ¶§´Â ij½Ã Ç׸ñµéÀ» ¹¶ÅÖÀÌ·Î ³¯·Á¹ö¸² - ÇѸ¶µð·Î SELECT°¡ ÂüÁ¶ÇÏ´Â Å×ÀÌºí µ¥ÀÌÅÍ Çϳª¶óµµ º¯°æµÇ¸é ±× Å×À̺í ij½Ã´Â ´Ù ³¯¶ó°£´Ù´Â ¾ê±âÀÓ - ¼öÁ÷ Å×À̺í ÆÄƼ¼Å´×À¸·Î ó¹æ * Product¿Í ProductCount¸¦ ÂÉ°µ´ÙµçÁö.. * ÀÚÁÖ º¯ÇÏ´Â °Í°ú º¯ÇÏÁö ¾Ê´Â °ÍÀ» ÂÉ°³´Â°Ô Áß¿äÇÏ´Ù ÀÌ ¸»ÀÓ. Stored Procedure¸¦ ¾²´Â °Í - ¹«Á¶°Ç ¾²¸é ¾È µÈ´Ù´Â°Ô ¾Æ´Ï°í.. - ÄÄÆÄÀÏ ÇÒ ¶§ ¹«½¼ ÀÏÀÌ ÀϾ´ÂÁö ÀÌÇØ ¸ø ÇÏ°í ¾²¸é Àç¾ÓÀÌ µÈ´Ù ÀÌ ¸». - ´Ù¸¥ RDBMS¶û ´Ù¸£°Ô connection thread¿¡¼ ½ÇÇà °èȹÀÌ ¼¼¿öÁü. - ÀÌ°Ô ¹º ¾ê±â³Ä ÇÏ¸é µ¥ÀÌÅÍ ÇÑ ¹ø °¡Á®¿À°í ¿¬°á ²÷À¸¸é ±×³É CPU ³¶ºñ (7~8% Á¤µµ)ÇÏ´Â ²ÃÀ̶ó´Â °Í. - À¢¸¸Çϸé Prepared ±¸¹®°ú Dynamic SQLÀ» ½á¶ó.. ¾Æ·¡ °æ¿ì¸¦ Á¦¿ÜÇÏ°í * ETL ŸÀÔ ÇÁ·Î½ÃÀú * ¾ÆÁÖ¾ÆÁÖ º¹ÀâÇÏÁö¸¸ ÀÚÁÖ ½ÇÇàµÇÁö´Â ¾Ê´Â °Í * ÇÑ ¹ø ¿äûÇÒ ¶§¸¶´Ù ¿©·¯¹ø ½ÇÇàµÇ´Â °£´ÜÇÑ °Í (¿¬°áÇÑ »óÅ·Π¿©·¯¹ø ½á¾ß µÈ´Ù´Ï±î) À妽º Ä÷³¿¡ ÇÔ¼ö ¾²´Â °Í - ÇÔ¼ö¿¡ À妽º Ä÷³ ³Ö¾î È£ÃâÇÏ¸é ´ç¿¬È÷ À妽º ¸ø ź´Ù - ÇÔ¼ö¸¦ ¸ÕÀú °è»êÇؼ »ó¼ö·Î ¸¸µç ´ÙÀ½¿¡ = ·Î ¿¬°áÇØ¾ß À妽º Å» ¼ö ÀÖ´Ù. * ¿©±â ½ÇÇà °èȹ º¸¸é LIKEµµ range type À妽º Ÿ´Â °Í º¸ÀÓ À妽º »©¸Ô°Å³ª ¾µ¸ð¾ø´Â À妽º ¸¸µé¾î ³õ´Â °Í - À妽º ºÐÆ÷µµ(selectivity)°¡ ÇãÁ¢ÇÏ¸é ¾È ¾´´Ù. - S = d/n * d = ¼·Î ´Ù¸¥ °ªÀÇ ¼ö (# of distinct values) * n = Å×À̺íÀÇ Àüü ·¹ÄÚµå ¼ö - ¾µ¸ð¾ø´Â À妽º´Â INSERT/UPDATE/DELETE¸¦ ´À¸®°Ô ÇÒ »Ó.. - FK´Â ¹«Á¶°Ç À妽º °É¾î¶ó. (¹°·Ð FK Á¦¾à °É¸é À妽º ÀÚµ¿À¸·Î »ý±ä´Ù.) - WHERE³ª GROUP BY Ç¥Çö½Ä¿¡¼ ¾²ÀÌ´Â Ä÷³Àº À妽º Ãß°¡¸¦ °í·ÁÇÒ °Í - covering index »ç¿ëÀ» °í·ÁÇÒ °Í - À妽º Ä÷³ ¼ø¼¿¡ À¯ÀÇÇÒ °Í! join ¾È ¾²´Â Áþ - ¼ºêÄõ¸®´Â joinÀ¸·Î ÀçÀÛ¼ºÇضó - Ä¿¼ Á¦°ÅÇضó - ÁÁÀº Mysql ¼º´ÉÀ» ³»·Á¸é ±âº» - ÁýÇÕ ±â¹ÝÀ¸·Î »ý°¢ÇؾßÁö ·çÇÁ µ¹¸®´Â°Å »ý°¢ÇÏ¸é ¾È µÈ´Ù. Deep Scan °í·ÁÇÏÁö ¾Ê´Â °Í - °Ë»ö¿£Áø Å©·¯¿ï·¯°¡ ¾µ°í Áö³ª°¥ ¼ö ÀÖ´Ù. - ÀÌ °æ¿ì °è¼ÓÇؼ Àüü ÁýÇÕÀ» Á¤·ÄÇÑ ´ÙÀ½ LIMIT·Î °¡Á®¿Í¾ß ÇÏ´Ï ¹«ÁøÀå ´À·ÁÁø´Ù. - ¾î¶»°Ôµç ÁýÇÕÀ» ÀÛ°Ô ÁÙÀÎ ´ÙÀ½ °Å±â¼ LIMIT °É¾î °¡Á®¿Ã °Í InnoDB Å×ÀÌºí¿¡¼ WHERE Á¶°ÇÀý ¾øÀÌ SELECT COUNT(*) ÇÏ´Â Áþ - InnoDB Å×ÀÌºí¿¡¼´Â Á¶°ÇÀý ¾øÀÌ COUNT(*) ÇÏ´Â°Ô ´À¸®´Ù. - °¢ ·¹ÄÚµåÀÇ transaction isolationÀ» À¯ÁöÇÏ´Â MVCC ±¸ÇöÀÌ º¹ÀâÇؼ ±×·¸´Ù´Â.. - Æ®¸®°Å °É¾î¼ ¸Þ¸ð¸® ½ºÅ丮Áö ¿£Áø ¾²´Â Å×ÀÌºí¿¡ Åë°è¸¦ º°µµ·Î À¯ÁöÇÏ¸é µÈ´Ù. ÇÁ·ÎÆÄÀϸµÀ̳ª º¥Ä¡¸¶Å· ¾È ÇÏ´Â °Í - ÇÁ·ÎÆÄÀϸµ : º´¸ñ ã¾Æ³»±â - º¥Ä¡¸¶Å· : ½Ã°£¿¡ µû¸¥ ¼º´É º¯È ÃßÀÌ Æò°¡, ºÎÇÏ °ßµô ¼ö ÀÖ´ÂÁö Å×½ºÆ® - ÇÁ·ÎÆÄÀϸµ ÇÒ ¶§´Â ½ÇÁ¦ µ¥ÀÌÅ͸¦ ¿Å°Ü¿Í¼ ÇÒ °Í - ¾îµð°¡ º´¸ñÀ̳Ä~ Memory? Disk I/O? CPU? Network I/O? OS? - ´À¸° Äõ¸® ·Î±×·Î ³²±â±â * log_slow_queries=/path/to/log * log_queries_not_using_indexes - º¥Ä¡¸¶Å· ½Ã¿¡´Â ´Ù °íÁ¤½ÃÅ°°í º¯¼ö Çϳª¸¸ ¹Ù²ã°¡¸é¼ ÇØ¾ß ÇÔ. (Äõ¸® ij½Ã´Â ²ø °Í.) - µµ±¸¸¦ ½á¶ó~~ * EXPLAIN * SHOW PROFILE * MyTop/innotop * mysqlslap * MyBench * ApacheBench (ab) * super-smack * SysBench * JMeter/Ant * Slow Query Log AUTO_INCREMENT ¾È ¾²´Â °Í - PK¸¦ AUTO_INCREMENT·Î ¾²´Â°Ç ¹«ÁøÀå ÃÖÀûÈ µÇ¾î ÀÖÀ½ * °í¼Ó º´Çà INSERT °¡´É * Àá±Ý ¾È °É¸®°í ÀÐÀ¸¸é¼ °è¼Ó ÇÒ ¼ö ÀÖ´Ù´Â! - »õ ·¹Äڵ带 ±Ùó¿¡ ³õÀ½À¸·Î½á µð½ºÅ©¿Í ÆäÀÌÁö ´ÜÆíȸ¦ ÁÙÀÓ - ¸Þ¸ð¸®¿Í µð½ºÅ©¿¡ ÇÖ ½ºÆÌÀ» »ý¼ºÇÏ°í ½º¿ÍÇÎÀ» ÁÙÀÓ ON DUPLICATE KEY UPDATE¸¦ ¾È ¾²´Â °Í - ·¹Äڵ尡 ÀÖÀ¸¸é ¾÷µ¥ÀÌÆ®ÇÏ°í ¾øÀ¸¸é ÀμƮÇÏ°í ÀÌ·± ÄÚµå ÇÊ¿ä¾ø´Ù!! ´Ù ³¯·Á¹ö·Á¶ó!! - ¼¹ö¿¡ ºÒÇÊ¿äÇÏ°Ô ¿Ô´Ù°¬´Ù ÇÒ ÇÊ¿ä°¡ ¾ø¾îÁü - 5-6% Á¤µµ ºü¸§ - µ¥ÀÌÅÍ ÀÔ·ÂÀÌ ¸¹´Ù¸é ´õ Ä¿Áú ¼ö ÀÖÀ½ ÇÏÁö ¸»¾Æ¾ß ÇÒ °Í ÃÑÁ¤¸® Thinking too small Not using EXPLAIN Choosing the wrong data types Using persistent connections in PHP Using a heavy DB abstraction layer Not understanding storage engines Not understanding index layouts Not understanding how the query cache works Using stored procedures improperly Operating on an indexed column with a function Having missing or useless indexes Not being a join-fu master Not accounting for deep scans Doing SELECT COUNT(*) without WHERE on an InnoDB table Not profiling or benchmarking Not using AUTO_INCREMENT Not using ON DUPLICATE KEY UPDATEK |
Àüü´ñ±Û¼ö 15
-
±×³× 11-10-09 01:22
¼Ò½ºº¸±â
-
mysql ¿¡ ±ØÇÑµÈ À̾߱⵵ ÀÖÁö¸¸ ´ëºÎºÐÀÇ DBMS ¿¡ ´Ù ÇØ´çµÇ´Â ³»¿ëµéÀÔ´Ï´Ù.
ÂÞ¿í ÀÐÀ¸¸é¼ Á¶±Ý¾¿ Ãß°¡¸¦ Çغ¸¸é
1 À妽º
À妽º¸¦ Å¿ì¸é ºü¸£´Ù´Â°ÍÀº ´©±¸³ª ¾Æ´Â »ç½ÇÀÌÁö¸¸ À妽ºµµ ¶È¶ÈÇѳðÀÌ ÀÖ°í Á» ¸ÛûÇÑ ³ðÀÌ ÀÖ½À´Ï´Ù.
µ¥ÀÌŸ ºñÀ²ÀÌ ±×·¯Çѵ¥¿ä ÀÌ°Ô À妽º ÁÁ´Ù ±×·¯´Ï±ñ ¹«Á¶°Ç °É¾îµÎ¸é¿ä ¿ÉƼ¸¶ÀÌÁ®°¡ ¹ÌÃĹö¸³´Ï´Ù. ±×·¡¼ ¾Æ¹«°Å³ª ¾µ·Á°í µì´Ï´Ù. ¸ÛûÇÑ À妽º »ç¿ëÇÏ°Ô µÇ¸é Áã¾àÀÔ´Ï´Ù. (¿ÉƼ¸¶ÀÌÁ®°¡ ¶È¶ÈÇÏ¸é ±×°Í¸¶Á®µµ ¼±º°Çؼ »ç¿ëÇÏ°ÚÁö¸¸...)
±×·¯´Ï À妽º ÁÁ´Ù°í ¹«Á¶°Ç ¸¸µéÁö ¸¶¼¼¿ä,
2. Å×ÀÌŸ ŸÀÔ, Á¤±ÔÈ
µ¥ÀÌŸ ŸÀÔÀº Á¤¸» ÇØ´ç µ¥ÀÌŸ¿¡ °¡Àå Á¢ÇÕÇÑ °ÍÀ» ¾²½Ã°í
¿Ø¸¸Çϸé ÇϳªÀÇ row ¸¦ ÀÛ°Ô ¸¸µé¾î¾ß ÇÕ´Ï´Ù.
¶È°°Àº µ¥ÀÌŸ·Î ¿·À¸·Î ±ä°Åº¸´Ù ¾Æ·¡·Î ±ä°Ô ÈξÀ È¿À²ÀûÀÔ´Ï´Ù.
Àü¿¡ °¡²û ÇÑ Å×ÀÌºí¿¡ Ä÷³ ¸î°³±îÁö ¸¸µé¼ö ÀÖ´À³Ä ±×·¯´Â°É º¸¸é¼ ´À³¢´Â °ÍÀº Âü ÇѽÉÇÏ´Ù´Â °Í
Àý´ë ¿·À¸·Î ±æ°Ô ¸¸µéÁö ¸¶¼¼¿ä
3. mysql ¼Óµµ (Áö³ª°¡´Â ¸», ±Ùµ¥ ¿ø¹®´Ù½Ã º¸´Ï ½ÇÇà¼Óµµ°¡ ¾Æ´Ï¶ó Á¢¼Ó¼Óµµ±º¿ä...)
¾Æ±î like %°Ë»ö¾î% ÀÌ°Å Å×½ºÆ® ÇÑ´Ù°í mysql ¿¡¼µµ Å×½ºÆ® ÇØ º¸¾Ò½À´Ï´Ù.
¶È°°Àº ÀÚ·á·Î ¶È°°Àº Äõ¸®¹®À» ¶È°°Àº ½Ã½ºÅÛ¿¡¼ ¶È°°ÀÌ À妽º ¾øÀÌ ½ÃÇàÇØ º¸¾Ò½À´Ï´Ù.
pgsql 9.1.1, mysql Àº 5.5.x (°ÅÀÇ ÃֽŠ¹öÁ¯ÀÔ´Ï´Ù.)
¾Æ¹«·± À妽º 잆ÀÌ ½ÃÇàÇØ º» °á°ú myisam, innodb, ±×¸®°í pgsql
pgsql ÀÌ ´õ »¡¶ú½À´Ï´Ù. (Äõ¸®Ä³½Ã ¹ÌÀû¿ë, Å×½ºÆ®¹æ¹ýÀÌ À߸øµÇ¾ú´ÂÁö´Â ¸ð¸£°ÚÁö¸¸¼µµ..) Å×½ºÆ® ÀÚ·á 16¸¸°Ç ½Ç °Ô½Ã¹° º»¹®°Ë»ö, Áö±ÝÀº mysql ÀÌ Á¦ÀÏ ºü¸£´Ù´Â Æí°ß ¹ö¸®¼¼¿ä
ÀÌ À̾߱â´Â mysql ÀÌ ³ª»Ú´Ù ¶ó´Â ¸»À» ÇÒ·Á°í Çϴ°ÍÀÌ ¾Æ´Ï¶ó
mysql ÀÌ´Ï ºü¸£´Ï±ñ ±×°Å¸¸ ¹ÏÁö ¸»°í Å×ÀÌºí±¸Á¶, À妽º µî ½Å°æÀ» ¾²½Ã¶ó´Â Àǹ̷Π¹Þ¾ÆÁÖ¼¼¿ä
4 µðºñ Ãß»óÈ
ÀÌ ¹®Á¦´Â µðºñº¸´Ù´Â ÇÁ·Î±×·¥´Ü(À¥¼¹ö´Ü) ÀÇ ¹®Á¦·Î º¸¿©Áý´Ï´Ù.
5. ÇÔ¼ö»ç¿ë
Æû Á» ³» º¼·Á°í ÇÔ¼öµé ¸¶±¸¸¶±¸ ¸¸µé¾î¼ ¸¹ÀÌ »ç¿ëÇÏ´Â »ç¶÷µé ÀÖ½À´Ï´Ù.
ÇÔ¼ö´Â ¾Æ¹«°÷¿¡³ª ¾²´Â°Ô ¾Æ´Õ´Ï´Ù. ÇÔ¼ö´Â ÇÔ¼ö°¡ ÇÊ¿äÇÑ °÷ÀÌ ÀÖÀ¸¸ç, ±× ¾²ÀÓµµ »ó´çÈ÷ Á¦ÇÑÀûÀÔ´Ï´Ù.
Äõ¸®¹®¿¡ Çѹø ÇÔ¼ö ¾²´Â°Å.. select µÈ Àü ·Î¿ì¿¡ ´Ù ¿µÇâÀ» Á༠½Ã½ºÅÛ ÄÝÀÌ ¸¹ÀÌ ¹ß»ýÇÕ´Ï´Ù.
µðºñ½Ã½ºÅÛÀÇ ¼Óµµ´Â I/O ¿Í ½Ã½ºÅÛÄÝÀ» ÁÙÀϼö·Ï »¡¶óÁý´Ï´Ù.
6. FK ¿¡ ´ëÇÏ¿©
mysql ¿¡¼´Â Àß ¸ð¸£°Ú´Âµ¥ º¸Åë ÂüÁ¶Å°¸¦ °É°ÔµÇ¸é parent ´Â ´ç¿¬ unique ÇØ¾ß ÇÏ´Ï À妽º°¡ °É·Á ÀÖ¾î¾ß ÇÕ´Ï´Ù¸¸ ÂüÁ¶ÇÏ´Â chiild ÀÇ °æ¿ì¿¡´Â Á¦¾à Á¶°Ç¸¸ ÀÖ°í À妽º°¡ ÀÚµ¿ °É¸®Áö ¾Ê½À´Ï´Ù.
²À È®ÀÎÇϽðí Á÷Á¢ °É¾îÁÖ¾î¾ß ÇÕ´Ï´Ù.
7. À߸ø ¾Ë°í ÀÖ´Â °Í Çϳª ¾ð±ÞÇÕ´Ï´Ù.
Äõ¸®¹®ÀÌ ±æ¸é ¼Óµµ°¡ ´À·ÁÁú°Å¶ó´Â »ý°¢À» °¡Áö°í ÀÖ´Â »ç¶÷µéÀÌ Àִ°Š°°½À´Ï´Ù.
Äõ¸®¹®ÀÌ ±æ´Ù°í ¼Óµµ°¡ ´À·ÁÁö´Â°Ç ¾Æ´Õ´Ï´Ù. Äõ¸®¹®ÀÌ ¾ó¸¶³ª È¿À²ÀûÀ¸·Î Â¥¿©Á³³ª°¡ ¹®Á¦Áö
Äõ¸®¹® ±æÀÌ¿Í´Â º°·Î ¿¬°ü¼ºÀÌ ¾øÀ½À» ÀÎÁöÇϽðí
¾Æ¿ï·Á Á¶ÀÎÇÏ¸é ´À·ÁÁø´Ù´Â »ç¶÷µéµµ °£È¤ ÀÖ½À´Ï´Ù. ¾îµð¿¡¼ ±×·± À̾߱Ⱑ ³ª¿Ô´ÂÁö´Â ¸ð¸£°ÚÁö¸¸
õ¸¸¿¡ ¸¸¸¸ÀÇ ¸»¾¸ÀÔ´Ï´Ù.
Á¶ÀξÈÇÏ°í ¿ªÁ¤±ÔÈÇؼ ÇÊ¿äÇÑ Ä÷³À» º» Å×ÀÌºí¿¡ ºÙÀ̸é¿ä
Á¶ÀξøÀÌ ±×³É select ¸¸ ÇÏ°Ô µÇ´Ï ºü¸¦°Å °°Áö¸¸¿ä Àý´ë ¾Æ´Õ´Ï´Ù.
±×·¸°Ô µÇ¸é row Å©±â°¡ Áõ°¡Çؼ µð½ºÅ© I/O °¡ ´õ ¸¹ÀÌ ¹ß»ýÇÕ´Ï´Ù.
µ¥ÀÌŸ Å©±â ÁÙÀϼö ÀÖ´Ù¸é ÃÖ´ëÇÑ ÁÙÀÌ½Ã±æ ¹Ù·¡¿ä. Á¶ÀÎÇÏ¸é ´À·ÁÁø´Ù´Â ¸Á»óÇÏÁö ¸¶½Ã°í¿ä
-
½Ã¿ìã¿éë 11-10-09 02:55
¼Ò½ºº¸±â
-
Mysql ¾²´Âµ¥ À妽º¸¦ ¾û¶×ÇÑ °É »ç¿ëÇϱ⿡ ¾îÀÌ ¾ø¾î¼...
±× ÀÌÈÄ·Î USE INDEX() ¸¦ »ç¿ëÇØ °Á¦·Î Àû¿ë½ÃÅ°°í ÀÖ½À´Ï´Ù.
-
±×³× 11-10-09 18:32
¼Ò½ºº¸±â
-
Á¶Àο¡ ´ëÇÑ ÇÑ°¡Áö Ãß°¡ÇØ º¾´Ï´Ù.
select ÇÏÁö ¾Ê´Â Å×À̺í°úÀÇ Á¶ÀÎÀÌ ÇÊ¿äÇÒ °æ¿ì¿¡´Â
from Àý¿¡¼ ³ª¿ÇÏÁö ¸»°Í! ÀÔ´Ï´Ù.
¿©±â¼ Á¶ÀÎÀº ¿©·¯°¡Áö Àǹ̰¡ ÀÖ½À´Ï´Ù.
´Ü¼øÈ÷ inner, outer, cross µîÀÇ Á¶ÀÎ ±¸¹®À» »ç¿ëÇϴ°ÍÀ» Æ÷ÇÔÇÏ¿©
µ¥ÀÌŸ¸¦ ¼·Î ¿¬°áÇÑ´Ù´Â Àǹ̷Πº¸¼Å¾ß ÇÕ´Ï´Ù.
union, ÇÁ·Î½ÃÁ®È£Ãâ, in, subquery, exists µîµîÀÌ ¸ðµÎ Á¶Àο¡ ÇØ´çµË´Ï´Ù.
¾Æ¹«Æ° select ¿¡ ÇÊ¿äÇÏÁö ¾Ê´Â Å×À̺íÀº from Àý¿¡¼ »© Áֽô°Ô
¾µµ¥¾ø´Â µå¶óÀ̺ùÀ» ¸·¾Æ ºÒÇÊ¿äÇÑ I/O ¸¦ ÁÙ¿©ÁÝ´Ï´Ù.
¿¹¸¦ µé¸é
select b.no, b.name
from a, b
where a.no = b.no
(and ...... µîµî Á¶°Çµé)
ÀÌ·¸°Ô ÀÛ¼º ÇÏÁö ¸»¶ó´Â... (ÀÌ·± ½ºÅ¸ÀÏ Á¤¸» ¸¹ÀÌ º¾´Ï´Ù....)
-
½ºÅ¸ºó 11-10-17 11:39
¼Ò½ºº¸±â
-
À§ÀÇ Á¶Àΰú Á¤±ÔÈ ºÎºÐ¿¡¼´Â ½ÇÁ¦ »ç·Ê¿¡¼´Â Àú·¸°Ô ¾²´Â°Ô Á¤´äÀÌ ¾Æ´Ò °æ¿ìµµ Âü ¸¹¾Æ¿ä.
¿¹¸¦ µé¸é, 100¸¸°Ç Á¶ÀÎÇϸé Äõ¸® Á×¾î ³³´Ï´Ù.
Å×À̺íÀ» ³ª´©Áö ¾Ê°í 1°³ÀÇ Å×À̺í·Î °¡´Â°ÍÀº Á¶ÀÎÀÇ ÇÑ°è ¶§¹®¿¡ Å°¿Í °ªÀ¸·Î ±¸ºÐÇÏ´Â ÇØ°á ¹æ¹ýÀ¸·Î ¾²°í ÀÖ´Â No-SQL¿¡ ´ëÇÑ °³³ä°ú °¡±õ½À´Ï´Ù. ¼¼¼¼ÇÏ°Ô µé¾î°¡¸é ´Ù¸¥ ºÎºÐµµ ¸¹Áö¸¸..
À§ÀÇ ±Û¿¡¼ join ¾È ¾²´Â Áþ. Á¤±ÔÈ ¾È ÇÏ´Â °ÍÀº °¡À̵å´Â ¸Â°ÚÁö¸¸, Áø¸®°¡ ¾Æ´Ï¶ó´Â ...
ÁÁÀº ±Û Àß º¸°í °©´Ï´Ù.
-
½ÅÀÇ»ð 11-10-17 12:16
¼Ò½ºº¸±â
-
ÁÁÀº±Û °¨»çÇÕ´Ï´Ù. ¸¹Àº µµ¿òµÇ¾ú½À´Ï´Ù.
ij½Ì°ú À妽º ·¹À̾ƿô ÀÌÇØ¿¡ Á» µµ¿òµÉ¸¸ÇÑ ¼Àû ¾Æ½Ã¸é ÃßõÁ» ºÎŹµå¸³´Ï´Ù.
-
³ë¸¶ 11-10-27 10:49
¼Ò½ºº¸±â
- Á¤¸» ÁÁÀº ±ÛÀ̳׿ä... ´Ù¸¥ ºÐµéµµ ÀÌ°É Âü°íÇϼż ¾±¾±~ ³¯¶ó´Ù´Ï´Â DB ±¸¼ºÇϽñæ... Àúµµ Á» Âñ¸®´Â ºÎºÐÀÌ ¸î ±ºµ¥ ÀÖ´øµ¥¿ä..¤»Ç±~
-
ArchEviL¢â 17-07-29 11:37
¼Ò½ºº¸±â
-
- IP´Â INT UNSIGNED·Î ÀúÀåÇØ!! (¾ÆÁÖ °ø°¨)
* ÀÌ·² ¶§ ¾²¶ó°í INET_ATON ÇÔ¼ö°¡ ¾Æ¿¹ ³»ÀåµÇ¾î ÀÖÀ½.
ÀÌ ºÎºÐÀº Á» »ý°¢ÇØ¾ß ÇÒ °Ô, ÀÌ¹Ì IPv4°¡ °í°¥µÇ¾î¼ IPv6À¸·Î ÀÌÇà ´Ü°è¿¡ ¿Í ÀÖ°í(IPv6Àº ¹«·Á 128ºñÆ®ÀÔ´Ï´Ù. INT´Â ¹°·ÐÀÌ°í BIGINT·Îµµ ¸ø ´ã½À´Ï´Ù), ¿ø¹® ÀÛ¼ºÀÚ´Â IPv6À» ²ô¶ó°í ±ÇÀåÇÏ´øµ¥ ÀÌ·¯¸é ³×ÀÌƼºê·Î IPv6 ÁÖ¼Ò¸¦ °®°í ÀÖ´Â ±â±â´Â »ç¿ëÀÌ ºÒ°¡ÇÏ°Ô µË´Ï´Ù.
VARBINARY Ä÷³¿¡ HEX(INET6_ATON(addr)) °°Àº½ÄÀ¸·Î ´ã´Â °Ô ´õ ÁÁÀ» µíÇÕ´Ï´Ù(µµ·Î °¡Á®¿Ã ¶§´Â INET6_NTOA(UNHEX(addr))·Î).
1 2 3 4 5 6 7 8 9 10