Class
  • Tip&Tech
[½ºÅ©¸³Æ®] ¸í·É¸ðµå PHP ½ºÅ©¸³Æ®·Î mysql Å×À̺í Á¡°ËÇϱâ.
±Û¾´ÀÌ ±â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§µ¶°Åû³â ³¯ Â¥ 12-03-16 18:13 Á¶ ȸ 1749
°£ÆíURL http://www.phpschool.com/link/tipntech/75246 º¹»ç

SyntaxHighlight·Î º¸±â

### ¾´°Í : PHP ¸í·É¸ðµå ½ºÅ©¸³Æ®¸¦ ÀÌ¿ëÇØ¼­ Mysql Å×À̺í Á¡°Ë
### ¾´ÀÌ : µ¶°Åû³â nonots@hanmail.net
### ¾´¶§ : 2012-03-16


1. Å×½ºÆ® ȯ°æ
- OS  : ¸®´ª½º CentOS 4,5,6
- Mysql : 4.x, 5.x
- Php : 5.x

2. ¸ñÀû
  ¸®´ª½º ¼­¹öÀÇ ½©¸ðµå¿¡¼­ ½ÇÇàµÇ´Â php ½ºÅ©¸³Æ®¸¦ ÀÌ¿ëÇØ¼­
  mysql °¢ Å×À̺íµéÀÇ »óŸ¦ Á¡°ËÇÑ´Ù.
  »óŸ¦ Á¡°Ë ÇÑ´Ù´Â ¸»Àº,
  Å×À̺íÀÇ Å©±â, Row ¼ö, ¿À¹öÇìµå ¸¦ ¸¹Àº(Å«) ¼øÀ¸·Î Ãâ·ÂÇØ¼­
  Å×À̺íÀÌ ÃÖÀûÈ­ ¾ÈµÇ¾î °ø°£È°¿ëÀ²ÀÌ ¶³¾îÁö°Å³ª
  ½ºÆÔ °ø°ÝÀ¸·Î ¾µ¸ð¾ø´Â Row °¡ ¾öû ½×À̰ųª ÇÑ Å×À̺íÀ»
  ã¾Æ¼­ º¸¿©ÁØ´Ù.
  ±×³É ¸ñ·ÏÀ» º¸¿©Áֱ⸸ÇÑ´Ù !!!
..
  ¸¸¾à  ¿À¹öÇìµå°¡ ¸¹´Ù¸é optimize table ¸í·É¾î·Î ÃÖÀûÈ­Çϰí
  ¸¸¾à ½ºÆÔÀÌ ¾öû ½×ÀΰŶó¸é °Ô½Ã¹°À» »èÁ¦Çϰųª Á¢±Ù±ÇÇѵîÀ»
  ¼öÁ¤ÇÑ´Ù.
  ..
  ÀÌ ½ºÅ©¸³Æ®´Â ¾öû ¸¹Àº DB ¿Í Å×À̺íÀ» ¿î¿µÇÏ´Â ¼­¹ö¿¡
  À¯¿ëÇÒ¼ö ÀÖ´Ù.
  ¸¸¾à ¾ó¸¶ ¾ÈµÇ´Â Å×À̺íÀ» ¿î¿µÁßÀ̶ó¸é phpmyadmin ¸ðµå¿¡¼­
  °£´ÜÇÏ°Ô »ç¿ë°¡´ÉÇÏ´Â°Ô ³´´Ù.
  ..
  ÀÌ°Ç ´Ü¼øÈ÷ show table status; °á°ú °ªÀ» ÅëÇØ Ãâ·ÂµÈ
  µ¥ÀÌŸ¸¦ ó¸®ÇßÀ» »ÓÀÌ´Ù.


3. ¹æ¹ý
  ¾Æ·¡ ÷ºÎÇÑ ¼Ò½º ½ÃÀÛ, ³¡ ºÎºÐÀ» º¹»çÇØ¼­
  ¸®´ª½º ¼­¹öÀÇ Àû´çÇÑ °÷¿¡ ÆÄÀÏ·Î ÀúÀåÇÑÈÄ ½ÇÇà ÆÛ¹Ì¼ÇÀ» ÁØ´Ù.
root ±ÇÇÑÀ¸·Î¸¸ Á¢±Ù°¡´ÉÇÑ °÷¿¡ µÎ´Â °ÍÀÌ ÁÁ´Ù.
  ¿¹¸¦ µé¸é
  /root/bin/check_mysql_disk.sh ¶ó´Â À̸§À¸·Î ÀúÀåÇß´Ù¸é
  chmod 755 /root/bin/check_mysql_disk.sh ·Î ½ÇÇà±ÇÇÑ ÁØ´Ù.
  ..
  ±×·±ÈÄ °¢ »çÀÌÆ®¿¡ ¸Â°Ô »ó´Ü ºÎºÐ¿¡ ¼öÁ¤ÇÑ´Ù.
  ¿¹¸¦ µé¸é ùÁÙ
  #!/usr/bin/php ¿Í °°ÀÌ µÈ ºÎºÐÀ»
  ¾î¶² ¼­¹ö´Â ÄÄÆÄÀÏÇØ¼­ php ¸í·É¾î À§Ä¡°¡ /usr/local/bin/php µî°ú °°ÀÌ
  µÇ¾î ÀÖ´Ù¸é #!/usr/local/bin/php ·Î ¼öÁ¤ÇÑ´Ù.
  ..
  ±×¸®°í mysql root ºñ¹øÀ» Á÷Á¢ Àû¾î¼­ »ç¿ëÇÏ·Á¸é
>> //$mysql_root_pwd="kqka##091";//¸¸¾à mysql root ºñ¹øÀ» Á÷Á¢ ³Ö´Â´Ù¸é ÀÌ ¶óÀÎ »ç¿ë
ÀÌ ¶óÀÎÀ» ÁÖ¼®Ç®°í
mysql_root ºñ¹øÀÌ º°µµ ÆÄÀÏ $r_file ¿¡ Àû¾î ³Ö¾ú´Ù¸é
>> $r_file = "/root/bin/.mysqlinfo"; // mysql root ºñ¹Ð¹øÈ£ ´Þ¶û ÀûÈù ÆÄÀÏ
>> $mysql_root_pwd=`cat $r_file`; // À§ ´Þ¶û ÀûÈù ÆÄÀÏ ºÒ·¯¿Í »ç¿ëÇÏ·Á¸é ÀÌ ¶óÀÎ »ç¿ë
¿Í °°ÀÌ ºÒ·¯¿À°Ô ÇÑ´Ù.


4. ½ÇÇ࿹

ÀÏ´Ü Àμö ¾øÀÌ ±×³É ½ÇÇàÇϸé 1,2,3 Áß¿¡ Çϳª¸¦ Àμö·Î ³Ñ±â¶ó°í ³ª¿Â´Ù.
  ¿©±â¼­ ¿À¹öÇìµå Å« ÆÄÀϵéÀ» º¸·Á¸é 1 À» ³Ö´Â´Ù


[root@mywww bin]# ./check_mysql_disk.sh

## »ç¿ë¹ý :: ¸í·É¾î Àμö·Î 1,2,3 Áß¿¡ Çϳª¸¦ ³Ñ°Ü¾ß ÇÔ.
..
¿À¹öÇìµå ¸¹Àº Å×ÀÌºí ¼ø¼­·Î º¸·Á¸é : ./check_mysql_disk.sh 1
µ¥ÀÌŸ Å©±â Å« Å×ÀÌºí ¼ø¼­·Î º¸·Á¸é : ./check_mysql_disk.sh 2
µ¥ÀÌŸ Row ¸¹Àº Å×ÀÌºí ¼ø¼­·Î º¸·Á¸é : ./check_mysql_disk.sh 3

[root@mywww bin]# ./check_mysql_disk.sh 1

### ¿À¹öÇìµå ¸¹Àº ¼ø¼­·Î Ãâ·Â ###

¿À¹öÇìµå: 25,217,520 Àüüũ±â: 25,508,732 Row¼ö: 171 ::: [jura_db : zetyx_board_j2]
¿À¹öÇìµå: 21,730,568 Àüüũ±â: 22,058,496 Row¼ö: 90 ::: [jc_db : zetyx_board_propose_01]
¿À¹öÇìµå: 11,366,084 Àüüũ±â: 11,516,944 Row¼ö: 77 ::: [bang_db : g4_write_pds]
...


À§¿¡¼­ jura_db ¶ó´Â DB ÀÇ zetyz_board_12 ¶ó´Â Å×À̺íÀÌ ¿À¹öÇìµå°¡ 25 ¸Þ°¡°¡ ³Ñ´Â´Ù.
    ÀÌ°É ÃÖÀûÈ­ ÇÏ·Á¸é optimize table ¸í·É¾î·Î ÃÖÀûÈ­ ÇÏ¸é µÈ´Ù.


5.  ¸¶¹«¸®
¾à°£ÀÌ¶óµµ µµ¿òÀÌ µÇ±æ..
¾ÈµÇ¸é µÉ ¶§±îÁö..


== ÀÚ¸£±â ½ÃÀÛ ================================
#!/usr/bin/php

<?php

error_reporting(E_ALL ^ E_NOTICE);

//$mysql_root_pwd="kqka##091";//¸¸¾à mysql root ºñ¹øÀ» Á÷Á¢ ³Ö´Â´Ù¸é ÀÌ ¶óÀÎ »ç¿ë
$r_file = "/root/bin/.mysqlinfo"; // mysql root ºñ¹Ð¹øÈ£ ´Þ¶û ÀûÈù ÆÄÀÏ
$mysql_root_pwd=`cat $r_file`; // À§ ´Þ¶û ÀûÈù ÆÄÀÏ ºÒ·¯¿Í »ç¿ëÇÏ·Á¸é ÀÌ ¶óÀÎ »ç¿ë

$data_free_limit = 1000000; // Å×ÀÌºíº° ¿À¹öÇìµå Ãâ·Â±âÁØ(byte)
$data_size_limit = 10000000; // Å×ÀÌºíº° µ¥ÀÌŸ Å©±â Ãâ·Â ±âÁØ(byte)
$data_rows_limit = 100000; // Å×ÀÌºíº°  µ¥ÀÌŸ °¹¼ö(row) Ãâ·Â ±âÁØ

if ( $_SERVER['argv'][1] == ''){
die("
## »ç¿ë¹ý :: ¸í·É¾î Àμö·Î 1,2,3 Áß¿¡ Çϳª¸¦ ³Ñ°Ü¾ß ÇÔ.
..
¿À¹öÇìµå ¸¹Àº Å×ÀÌºí ¼ø¼­·Î º¸·Á¸é : ". $_SERVER['argv'][0] ." 1
µ¥ÀÌŸ Å©±â Å« Å×ÀÌºí ¼ø¼­·Î º¸·Á¸é : ". $_SERVER['argv'][0] ." 2
µ¥ÀÌŸ Row ¸¹Àº Å×ÀÌºí ¼ø¼­·Î º¸·Á¸é : ". $_SERVER['argv'][0] ." 3
\n");
}

if ( $_SERVER['argv'][1] == '2'){
$coln = 'total';
$title = "µ¥ÀÌŸ Å©±â ¼ø¼­·Î Ãâ·Â";
}else if ( $_SERVER['argv'][1] == '3'){
$coln = 'Rows';
$title = "µ¥ÀÌŸ Row ¸¹Àº ¼ø¼­·Î Ãâ·Â";
}else{
$coln = 'Data_free';
$title = "¿À¹öÇìµå ¸¹Àº ¼ø¼­·Î Ãâ·Â";
}

echo "### $title ###\n\n";

//print_r(array_sort($people, 'age', SORT_DESC)); // Sort by oldest first
function array_sort($array, $on, $order=SORT_ASC) {
    $new_array = array();
    $sortable_array = array();

    if (count($array) > 0) {
        foreach ($array as $k => $v) {
            if (is_array($v)) {
                foreach ($v as $k2 => $v2) {
                    if ($k2 == $on) {
                        $sortable_array[$k] = $v2;
                    }
                }
            } else {
                $sortable_array[$k] = $v;
            }
        }

        switch ($order) {
            case SORT_ASC:
                asort($sortable_array);
            break;
            case SORT_DESC:
                arsort($sortable_array);
            break;
        }

        foreach ($sortable_array as $k => $v) {
            $new_array[$k] = $array[$k];
        }
    }
    return $new_array;
}

$conn = mysql_connect("localhost","root",trim($mysql_root_pwd));
mysql_select_db("mysql");

$result = mysql_query("select Db from db");
while($arr = mysql_fetch_array($result)) {
    $dbarr[] = $arr['Db'];
}

foreach($dbarr as $k){
    #$result = mysql_query("SHOW TABLE STATUS FROM $k where Data_free > 100000 or Data_length > 100000;");
    #$result = mysql_query("SHOW TABLE STATUS FROM $k where Data_free > $data_free_limit;");
    $result = mysql_query("SHOW TABLE STATUS FROM $k");

if ( $result ){
while($array = mysql_fetch_array($result,MYSQL_ASSOC)){
$array['total'] = $array[Data_length]+$array[Index_length];
$array['Dbname'] = $k;

if ( $coln == 'Rows' ){
if ( $array[Rows] > $data_rows_limit ) $dinfo[] = $array;
}elseif ( $coln == 'total' ){
if ( $array[total] > $data_size_limit ) $dinfo[] = $array;
}else{
if ( $array[Data_free] > $data_free_limit ) $dinfo[] = $array;
}
}
}
}

$dinfo2=array_sort($dinfo,$coln,SORT_DESC);

foreach($dinfo2 as  $vv){
$total=$data_free=$rows='';
$total = number_format($vv['total']);
$data_free = number_format($vv['Data_free']);
$rows = number_format($vv['Rows']);
echo "¿À¹öÇìµå: ".$data_free."\tÀüüũ±â: ".$total."\tRow¼ö: ".$rows."\t:::\t";
echo "[".$vv['Dbname']." : ".$vv[Name]."] \n\n";
}
mysql_close();
?>
== ÀÚ¸£±â ³¡ ================================

Àüü´ñ±Û¼ö 0

  • °Ô½Ã¹° 12,477°Ç RSS
¹øÈ£ºÐ·ùÁ¦¸ñ±Û¾´À̳¯Â¥Á¶È¸
12,417 ½ºÅ©¸³Æ® Restful API¸¦ Á¦°øÇϴµ¥ ¾µ¸¸ÇÑ framework ¸µÅ© ±â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§Æø½ºÅ׸®¾î 13-02-27 631
12,416 Á¤º¸ µµ·Î¸í ¿ìÆíÁÖ¼Ò (¾÷µ¥ÀÌÆ®, À¥È£½ºÆÃ, ¿µ¹® »ç¿ë°¡´É) [2] ÷ºÎÆÄÀÏ ±â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§casis 13-02-26 743
12,415 ¼­¹ö¿î¿µ ÁÖ±âÀûÀÎ ·ÎÄÃ>¸®¸ðÆ® rsync ½Ã mtime °Ë»ç·Î ¿äû ÁÙÀ̱â [1] ±â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§¼ÛÈ¿Áø 13-02-26 476
12,414 HTML Google Chrome 25 CSS ¹ö±×. inline-block Ç¥½Ã [1] ¸µÅ© ±â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§Æø½ºÅ׸®¾î 13-02-26 564
12,413 HTML À¥ÆùÆ® ¾ÆÀÌÄÜ Font Awesome [6] ¸µÅ© Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§¼ÛÈ¿Áø 13-02-22 1089
12,412 ½ºÅ©¸³Æ® ¼­¹ö¿¡¼­ ºê¶ó¿ìÀú¸¦ ¸¾´ë·Î ÄÁÆ®·ÑÇÏ´Â casper.js [3] Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§Å©¾î¾ï123 13-02-22 1048
12,411 ½ºÅ©¸³Æ® ÀÚ¹Ù½ºÅ©¸³Æ® ¹®ÀÚ¿­ ¿¬»êÇÒ ¶§ ÃÖ°í ºü¸¥°Í [2] ¸µÅ© ±â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§Æø½ºÅ׸®¾î 13-02-22 736
12,410 ½ºÅ©¸³Æ® NodeJS ±â¹ÝÀÇ NET ¸ðµâ·Î ±¸ÇöÇÑ À¥ ¼­¹ö [7] ¸µÅ© ±â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§¹®ÇÐû³â 13-02-20 872
12,409 ½ºÅ©¸³Æ® JavaScript Garden, ¾Ë½ö´Þ½öÇÑ ÀÚ½º ¹®¹ýÀ» ±ò²ûÈ÷ [8] ¸µÅ© ±â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§Æø½ºÅ׸®¾î 13-02-20 764
12,408 ½ºÅ©¸³Æ® ¼ø¼ö ÀÚ¹Ù½ºÅ©¸³Æ®·Î ±¸ÇöÇÑ Simple jQuery [10] ¸µÅ© Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§¹®ÇÐû³â 13-02-19 1174
12,407 ±âŸ ÇÁ¸®Ã§ °Ô½ÃÆÇ °¡Á®¿À±â ¼Ò½º [2] ÷ºÎÆÄÀÏ Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§¾Æ´Ï¿À 13-02-14 1709
12,406 Á¤º¸ À¥ÆùÆ® ¾øÀÌ ¿¹»Û ÇÑ±Û ±Û²Ã »ç¿ëÇϱâ (À̹ÌÁö ÀÚµ¿»ý¼º) [14] ¸µÅ© Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§°õÅÊÀÌǪ 13-02-12 1501
12,405 ±âŸ ¿µ¹® ¿Â¶óÀÎ Çʱâ ÀÎ½Ä [2] ¸µÅ© ÷ºÎÆÄÀÏ ±â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§wkpark 13-02-09 880
12,404 DBMS mysql bin log º¹±¸ [6] ±â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§¼ÛÈ¿Áø 13-02-07 890
12,403 DBMS [mssql] group by + case¿Í where+group byÀÇ ºñ±³ [7] ¸µÅ© ±â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§º½µ¹#3141 13-02-06 702
12,402 ¾Ë°í¸®Áò ¸ð¹ÙÀϴ亯Çü °Ô½ÃÆÇ ±¸Çö¿ø¸® [29] ÷ºÎÆÄÀÏ Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§°³¹ß»ç¶û 13-02-06 1461
12,401 Á¤º¸ 10¿ø, ÇÑ±Û »ç¿ë¿¡ °üÇÏ¿©.... [6] ÷ºÎÆÄÀÏ ±â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§·¹¾î´Ð 13-02-06 868
12,400 ¼³Ä¡/¼³Á¤ atime À» ²¨¼­ ¾µµ¥¾ø´Â write ¿äûÀ» ÁÙÀÌÀÚ. [5] ±â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§¼ÛÈ¿Áø 13-02-05 693
12,399 Á¤º¸ zen coding 0.7.5 for dreamweaver ´ÜÃàŰ º¯°æ¹öÀü. [2] ¸µÅ© ÷ºÎÆÄÀÏ ±â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§¼ÛÈ¿Áø 13-02-04 639
12,398 HTML yeoman: HTML App ½ºÄ³Æúµù Åø [3] ¸µÅ© ±â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§Æø½ºÅ׸®¾î 13-01-30 991
 
12345678910