160;현1116; 약 5Ǻ13;,148; 1221;도1032; 데1060;터를 가1648;고 1080;lj16; 테1060;블1060; 1080;습니다.
현1116;lj16; MariaDB innoDB를 사용1473;1077;니다.
파티션1008; 아1649; 사용Ȣ16;고 1080;1648; 않고요, 고/140;1473;1077;니다. (파티션1012; 사용할 1648;, DBMS를 교체할 1648;..)
테1060;블 구1312;lj16; 아1452; 단순합니다.
필드구ǥ16;1088;160; | 시각160; | 행번호160; | 열0160; | 열1160; | 160;...160; | 열498160; | 열499 |
1 | 2010-01-01 9:00 | 0 | 18.3 | 18.31 | 160;...160; | 18.41 | 18.4 |
1 | 2010-01-01 9:00 | 1 | 18.29 | 18.3 | 160;...160; | 18.4 | 18.41 |
160;...160; | 160;...160; | 160;...160; | 160;...160; | 160;...160; | 160;...160; | 160;...160; | 160;...160; |
1 | 2010-01-01 9:00 | 498 | 18.9 | 18.89 | 160;...160; | 18.85 | 18.86 |
1 | 2010-01-01 9:00 | 499 | 18.88 | 18.87 | 160;...160; | 18.84 | 18.83 |
160;...160; | 160;...160; | 160;...160; | 160;...160; | 160;...160; | 160;...160; | 160;...160; | 160;...160; |
2 | 2010-01-01 9:00 | 0 | 18.29 | 18.3 | 160;...160; | 18.4 | 18.39 |
2 | 2010-01-01 9:00 | 1 | 18.28 | 18.29 | 160;...160; | 18.39 | 18.4 |
160;...160; | 160;...160; | 160;...160; | 160;...160; | 160;...160; | 160;...160; | 160;...160; | 160;...160; |
2 | 2010-01-01 9:00 | 498 | 18.89 | 18.88 | 160;...160; | 18.84 | 18.85 |
2 | 2010-01-01 9:00 | 499 | 18.87 | 18.86 | 160;...160; | 18.83 | 18.82 |
160;...160; | 160;...160; | 160;...160; | 160;...160; | 160;...160; | 160;...160; | 160;...160; | 160;...160; |
특1221; 1648;역1032; 1648;도가 1080;다면.. Ȣ16;나1032; 세트가 열500개 * 행500개/196; 1060;루Ǻ12;1652; ᅄ1;1088; 데1060;터1077;니다.
'필드구ǥ16;1088;'lj16; 데1060;터 1333;류1077;니다. '기온', '습도' መ1;መ1;1060; .121;니다. (11060;면 기온, 21060;면 습도 መ1;መ1;)
그러니까, 특1221; 1648;역1032; 1648;도를 500개*500개/196; 나눈 ᅄ1;1088;에, 특1221; 시각에 해NJ17;Ȣ16;lj16; 데1060;터가 1452;욱 기/197;.104;Ǻ12; 1080;lj16; 구1312;1077;니다.
현1116;, '필드구ǥ16;1088;', '시각', '행번호'에 대해서 PK를 1105;아 놓1008; 상태1077;니다.
데1060;터를 기/197;Ȣ16;lj16; ,163;1008;, 특1221; 시1216;에 한 번에 기/197;합니다.
예를 들Ǻ12;, 2019년 데1060;터가 1221;리.104;면, 2019년 데1060;터 수천만,148;1012; 한 번에 기/197;Ȣ16;,192;1648;요.
1060; 시간1060; 오래 ,152;리lj16; ,163;1008; 크,172; 문1228;가 .104;1648; 않습니다. 1년에 한 번 1080;lj16; 1068;1060;니까요.
데1060;터를 업데1060;트 Ȣ16;lj16; ᅆ1;우lj16; 없습니다. 업데1060;트 한다lj16; ,163;1008; 무Ꮗ1;1064;가 1096;못.104;었다lj16; ,163;1064;데..
1060;/111;,172; .104;면, 아마 대량1004;/196; 삭1228;Ȣ16;고, 대량1004;/196; 추가Ȣ16;,172; .104;1648; 않1012;까 합니다.
문1228;lj16; 데1060;터를 1312;회Ȣ16;lj16; ,163;1077;니다. 대ǥ12;ǥ16;1032; 결과셋1008; 다1020;과 같1008; 구1312;/196; 1312;회합니다.
특1221; 1648;역1032; 1340;표를 1221;합니다. (예: 열5, 행20)
그리고 1060;런 데1060;터를 2010년 1년치를 뽑아내lj16; ,163;1060;1424;.
그러니까, 1452;.108; 연산1008; '피벗' 1077;니다.
1068;시 | 기온 | 습도 |
2010-01-01 9:00 | 18.31 | 38.8 |
2010-01-01 10:00 | 18.32 | 38.81 |
… | … | … |
2010-12-31 22:00 | 17.45 | 36.5 |
2010-12-31 23:00 | 17.44 | 36.45 |
1060;런 상황1064;데요.. 1312;회 속도가 lj12;/140;서, 1060;,163;1012; 개선Ȣ16;고 dz10;1008; ,163;1077;니다.
Ǻ12;떻,172; Ȣ16;면 1339;,192;습니까?
1. 현1116;1032; MariaDB를 그대/196; 사용합니다. 파티션1012; 1105;1004;면 그럭1200;럭 ƻ16;찮1012; ,163;1077;니다.
2. NoSQL, MongoDB와 같1008; RDB가 아닌 ,163;1012; 사용Ȣ16;lj16; ,163;1060; 1201;합해 보1077;니다.
3. 기타 다른 해결책
Ǻ12;떤 ,163;1060; 가1109; 낫,192;습니까?
아, 서버 Ȣ16;드웨Ǻ12;lj16; 빵빵합니다.
메모리 128G에 400G SSD 6개를 RAID5 해서 사용1473;1077;니다.
µ¥ÀÌÅÍ°¡ ÀԷµɶ§ À妽º°¡ Á¦´ë·Î °É·ÁÀÖÁö ¾Ê°Å³ª µð½ºÅ© ¹®Á¦À̰ųª
µ¥ÀÌÅͺ£À̽ºÀÇ ¼³Á¤¹®Á¦À̰ųª ..
±âŸ Äõ¸®°¡ ´À·ÁÁö´Â ¿øÀÎÀº ´Ù¾çÇϴϱî¿ä..
Á¤½ÄÀ¸·Î µ¥ÀÌÅͺ£À̽º Àü¹®°¡¸¦ Çѹø ºÒ·¯¼ ºñ¿ë ÁöºÒÇÏ°í Á¶¾ðÀ» ±¸ÇÏ½Ã´Â°Ô ³ª¾Æ º¸ÀÔ´Ï´Ù.
ÀÌ·± »óȲÀÏ ¶§, RDB°¡ ÀûÀýÇÑ ¼Ö·ç¼ÇÀÎÁö.. ¾Æ´Ï¸é ´Ù¸¥ ¼Ö·ç¼ÇÀÌ ´õ ÀûÇÕÇÑÁö ¿©Âã´Â °ÍÀÔ´Ï´Ù.
Á¦°¡ Áú¹®À» Á» ÀåȲÇÏ°Ô Àû¾î ³õÀº °Í °°³×¿ä..
"Å×ÀÌºí±¸Á¶, ½ÇÁ¦ Äõ¸® ³»¿ë ¹× Äõ¸® °á°ú¸¦ º¸±âÀü¿£ ¹¹¶ó ¸»Çϱâ Èûµé´Ù." ÀÔ´Ï´Ù.
Áý°è ÀÛ¾÷Àº ¾ø°í, Çǹþ¸¸ Çϱ⠶§¹®¿¡, Áý°è Å×À̺íÀº Àǹ̰¡ ¾ø½À´Ï´Ù.
PKÀÇ ¼ø¼°¡ À߸øµÈ °ÍÀ¸·Î º¸ÀÔ´Ï´Ù.
Çà¹øÈ£, ½Ã°¢, Çʵ屸ºÐÀÚ ¼øÀ¸·Î µÇ¾îÀÖ¾î¾ß
Á» »¡¶ó Áú °Í °°½À´Ï´Ù.
À½.. Àß ÀÌÇØ°¡ µÇÁö ¾Ê½À´Ï´Ù.
¿Ö ±×·¸°Ô »ý°¢ÇϽʴϱî?
µ¥ÀÌÅ͸¦ »Ì¾Æ³¾ ¶§, Çʵ屸ºÐÀÚ·Î ¸ÕÀú ÇÊÅ͸µÀÌ µË´Ï´Ù. ±× ´ÙÀ½ÀÌ ³¯Â¥ÀÌ°í¿ä. ±× ´ÙÀ½ÀÌ Çà¹øÈ£°¡ µË´Ï´Ù.
ÀÌ·¸°Ô µÇ¾îµµ Çà¹øÈ£ ½Ã°¢ Çʵ屸ºÐÀÚ ¼øÀ¸·Î µÇ´Â °ÍÀÌ ´õ ºü¸¦±î¿ä?
ƯÁ¤ Áö¿ªÀÇ ÁÂÇ¥¸¦ Á¤ÇÕ´Ï´Ù. (¿¹: ¿5, Çà20)
ÀÌ·¸°Ô ¸»¾¸Çϼż
Çà¹øÈ£´Â 1°³ Çʵ屸ºÐÀÚ´Â ¿©·¯°³ Á¶È¸ µÇ´Â °ÍÀ¸·Î º¸¿©¼
¸¶¸®¾ÆDBÀÇ Index¸¦ Å»¶§ ¹üÀ§ Á¶°ÇÀÌ ºÙÀ¸¸é
ÇÏÀ§ Ä÷³Àº Index¸¦ ŸÁö ¾Ê½À´Ï´Ù.
(Á¦°¡ ¾Ë°í ÀÖ´Â Áö½Ä - ¹öÀü ¾÷ µÇ¸é¼ ¹Ù²î¾úÀ» ¼ö ÀÖ½À´Ï´Ù.)
SSD¸¦ RAID·Î Çسù´Ù°¡ ±ú¸ÔÀº ºÐµéÀÌ ¼öµÎ·è ÇÑÁö¶ó..
ÁÖ ¾÷¹«°¡ ÇǹþµÈ SELECT¶ó°í Çϸé
ÇǹþµÈ ÇüÅÂÀÇ Å×À̺íÀ» ¸¸µé°í
Insert½Ã ÀÓ½ÃÅ×À̺íÀ» ÀÌ¿ëÇØ
ÇǹþÇØ InsertÇÏ°í
select´Â ´Ü¼øÇÏ°Ô ÇÏ´Â ¹æ¹ýÀÌ ´õ È¿À²ÀûÀ¸·Î º¸ÀÔ´Ï´Ù.
(¾÷¹«¸¦ ¸ð¸£°í ÇÏ´Â Á¶¾ðÀ̶ó ±×³É Âü°í¸¸ Çϼ¼¿ä.)
±×¸®°í ±× ¹Ý´ëÀÔ´Ï´Ù.
Çà ¼ö°¡ ³Ê¹« ¸¹¾Æ¼ ÇǹþµÈ µ¥ÀÌÅÍ·Î º¸°üÁßÀÌ°í¿ä..
µ¥ÀÌÅ͸¦ »Ì¾Æ³¾ ¶§´Â ¾ðÇǹþÀ» ÇÏ´Â °ÍÀÔ´Ï´Ù. ^^
Àú »óȲÀº Å©°Ô ¹Ù²Ü°Ô ¾Æ´Ï¸é SSD·Î ¹Ù²Ù¶ó°í ÇÏ°í ½Í³×¿ä.
º¸´Ï±î Çà·Ä º¯È¯ÀÌ µé¾î°¡¸é ÇÔ¼ö°¡ »ç¿ëµÉ°Å°í ÇÔ¼ö »ç¿ë½Ã À妽º ¾ÈŸ´Â °æ¿ì°¡ ¸¹½À´Ï´Ù.
µÑ°´Â º¯È¯Çؼ Àӽ÷Πµé¾î°¡¾ßµÉ ÀÓ½ÃÅ×ÀÌºí¿¡ ´ëÇÑ ¼³Á¤ÀÌ ¾ø½À´Ï´Ù. MSSQLó·³ ¿ÃÄÚ¾î ¸ÖƼ¾²·¹µùÀÌ µÇ´ÂÁö ¸ð¸£°Ú³×¿ä.
À±Û¸¸ º¸¸é ¼ø¼öÇÑ Á¶È¸°¡ ¾Æ´Ï°í Çѹø º¯È¯À» °ÅÄ¡´Â ´Ü°è°¡ Àֱ⠶§¹®¿¡ ´À·ÁÁú¸¸ ÇÏ°Ú´Ù?¶ó´Â »ý°¢ÀÌ µå³×¿ä.
ÆÄƼ¼ÇÅ×À̺í Àâ¾Æµµ À§¿¡ ´ëÇÑ ³»¿ë¿¡ µµ¿ò ¾ÈµÉ°Ì´Ï´Ù.
ÀÌ ¼¹ö´Â Àú µ¥ÀÌÅ͸¦ º¸°üÇÏ°í, ÇÊ¿äÇÒ ¶§ Á¶È¸ÇÒ ¿ëµµ·Î¸¸ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.
MSSQL AlwaysONÀº °³³äÀûÀ¸·Î¸¸ ¾Ë°í Àִµ¥.. 'º¹Á¦µÈ ¼¹ö¿¡¼ Ç®½ºÄµ ÇÒÇÊ¿ä ¾øÀÌ 1³âÄ¡ µ¥ÀÌÅ͸¦ »Ì¾Æ¼' ¶ó°í ¸»¾¸Çϼ̴µ¥..
ÀÌ°ÍÀº º¹Á¦µÈ ¼¹öµé¿¡¼ °¢ 1³âÄ¡ µ¥ÀÌÅ͸¦ »Ì¾Æ¿À´Ï, ±×¸¸Å ¼¹ö ºÎÇÏ°¡ ÁÙ°Ô µÈ´Ù´Â ¸»¾¸À̽Ű¡¿ä?
Å©°Ô º¸¸é Çѹø º¯È¯À» °ÅÄ¡°í º¯È¯µÇ´Â µ¥ÀÌÅ͸¦ ÀÓ½ÃÀûÀ¸·Î ÀúÀåµÇ´Â ´Ü°è°¡ ¿À·¡°É¸®´Â°Å °°½À´Ï´Ù. ÀÌ·±°Ç ¿£ÁøÀÇ ¼º´É¿¡ Á¿ìµÉ¼öµµ ÀÖÀ»°Å °°¾Æ¿ä.
À§ »óȲÀº º°µµ·Î ÇØ´ç µ¥ÀÌÅ͸¦ ´Ù¸¥ÂÊÀ¸·Î º¯È¯µÈ µ¥ÀÌÅÍ·Î ¸¶À̱׷¹ÀÌ¼Ç ÇÏ´Â°Ô ´õ ºü¸£Áö ¾ÊÀ»±î ½Í³×¿ä. ¹èÄ¡·Î ¶È°°Àº µ¥ÀÌÅ͸¦ º¯È¯ÇÏ¸é¼ ¶§·Á³Ö´Â°ÅÁÒ.
ÀüÇüÀûÀÎ RDBÇüÅÂÀÇ µ¥ÀÌÅÍ°¡ ¾Æ´Ï¶ó¼.. ¿ÀÈ÷·Á °í¹ÎµË´Ï´Ù. ^^
Çà - ¿1¿2¿3¿4¿5¿6¿....¿499¿500 ±¸Á¶¿¡¼
Çà - ¿ - °ª
±¸Á¶·Î º¯°æÇÏ¸é »ó´çÈ÷ »¡¶óÁý´Ï´Ù.
¿¹¸¦µé¸é ¾Æ·¡¿Í °°Àº Çü½ÄÀÌ°ÚÁÒ.
create table huge_data_table (
category int
, logdate datetime
, row int
, col1 double
, col2 double
...
, col500 double
);
->
create table huge_rowdata_table (
category int
, logdate datetime
, row int
, col int
, data_value double
);
µ¥ÀÌÅÍ ¾çÀÌ ¼ö½Ê¾ï°Ç ÀÌ»óÀ¸·Î ¸¹¾ÆÁø´Ù¸é logdate ·Î ÆÄƼ¼Å´× ÇÏ½Ã¸é µÉµí ÇÕ´Ï´Ù. (À妽º Å©±â Àß °è»êÇغ¸¼Å¾ß...)
±×·±µ¥, ±×·¸°Ô ÇÏ¸é ¼ö½Ê¾ï ÇàÀ¸·Î µÇ±â ¶§¹®¿¡, ±×·¸°Ô ÇÏÁö ¾ÊÀº °ÍÀä..
±×·¡µµ Çà-¿-°ª Çü½ÄÀ¸·Î ÇÏ´Â °ÍÀÌ ¸Â°Ú½À´Ï±î?
(Å×½ºÆ®¸¦ ÇØ º¸·ÁÇصµ ¿ö³« ½Ã°£ÀÌ ¸¹ÀÌ °É¸®´Â ÀÛ¾÷À̶ó.. ¤Ð.¤Ð)
À§¿Í °°Àº ½Ã³ª¸®¿À¶ó¸é Àú¶ó¸é Å×À̺í 500°³ ¸¸µé°Í °°½À´Ï´Ù.
½ÇÁ¦·Î ´ÜÀÏÄ÷³ Á¶È¸(Å°-º§·ù ŸÀÔ)ÀÇ °æ¿ì ÀÌ·¸°Ô ¸ðµ¨¸µ ÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.
±× ºÎºÐÀº »ì¦ »ý°¢¸¸ ÇØ º¸°í ³Ñ¾î°¬¾ú´Âµ¥, Á» ´õ ±¸Ã¼ÀûÀ¸·Î »ý°¢ÇØ ºÁ¾ß°Ú½À´Ï´Ù..
rdbmsµç noSQLÀ̵ç SQL ±¸¹®À» ÀÌ¿ëÇؼ »ç¿ëÇϱâ ÆíÇÏ°í À¥À̶û ¿¬µ¿Çϱ⿡ ÆíÇÏ´Ù´Â ÀåÁ¡ÀÌ ÀÖ°ÚÁö¸¸
Àú·± ÇüÅÂÀÇ ´ë·®ÀÇ data¸¦ ó¸®Çϱ⿡ DB¸¦ »ç¿ëÇϴ°ÍÀº ´À/¸³/´Ï/´Ù.
Â÷¶ó¸® HDF Æ÷¸ËÀ¸·Î µ¥ÀÌÅ͸¦ ÀúÀåÇÏ°í ÀоîµéÀÌ´Â°Ô ÈξÀ ¼º´É»ó ÀÌÁ¡ÀÌ ¸¹À» °Í °°½À´Ï´Ù.