Mengetahui pemakaian resources MySQL

Dalam pengembangan aplikasi database kita harus membuat query yang efisien. Query yang efisien ini diperlukan untuk mengantisipasi membesarnya data maupun pemakai aplikasi. Dalam web development yang bersifat komunitas hal ini harus diperhatikan. Misalnya website komunitas fotografer. Pada saat aplikasi dibuat tentu datanya kecil dan jumlah pemakainya sedikit, tetapi saat dilaunching tentu pemakai atau membernya akan terus bertambah. Koleksi foto juga terus meningkat. Keadaan saat pengembangan dengan kenyataan setelah web dilaunching bisa sangat berbeda. Yang perlu diantisipasi untuk semakin membengkaknya member dan foto yang diupload adalah:
1. space
2. memory
3. cpu

Untuk space tidak ada masalah, tinggal upgrade. Atau juga sekarang banyak yang menyediakan web hosting unlimited space.
Yang menjadi masalah adalah memory dan CPU. Web hosting memiliki memori dan CPU yang terbatas, dan kita tidak dapat mengendalikan pemakaian memori. Solusi untuk situasi ini adalah dengan memakai Virtual Private Server. Dengan Virtual Private Server ini kita mendapatkan dedicated memori dan CPU. Tetapi dengan keadaan inipun memory yang diberikan kepada kita bisa habis juga. Bagaimana mengatasinya ?

Langkah paling mudah adalah mengupgrade memori. Tetapi suatu saat juga akan habis juga. Jika ini yang terjadi kita harus bisa menganalisa program mana yang menyebabkan memori habis.

Untuk mengetahui program apa yang mengambil memori dan CPU:
a. Linux : ketikkan top dari shell
b. Ctrl-Alt-Del lihat tab Processes

Salah satu sebab adalah query MySQL yang banyak memakai resources. Sebagai contoh fungsi concat banyak memakai resources. Bagaimana kita mengetahui query apa yang memakan banyak resources ? Caranya adalah dengan masuk ke phpmyadmin dan lihat di Processes. Atau kalau anda sudah terbiasa dengan query lewat shell anda bisa jalankan SHOW PROCESSLIST. Dengan melihat proses-proses yang ada, anda dapat mengambil kesimpulan query apa yang menghabiskan memori. Jika anda sudah menemukan, cari script yang mengeksekusi proses tersebut dan edit dengan query yang lebih efisien.

Atau jika anda ingin membuat sendiri program untuk menampilkan process list berikut codenya:

<html>
<body>
<table border=1>
<?php
$host="localhost";
$username="namauserdb";
$password="password";
$db="databaseanda";
mysql_connect($host,$username,$password);
mysql_select_db($db);
$sql="SHOW PROCESSLIST";
$rs=mysql_query($sql);
$total_field=mysql_num_fields($rs);
echo "
<tr>";
for ($i=0;$i<$total_field;$i++)
{
    echo "\n   <td><b>" .mysql_field_name($rs,$i).  "</b></td>";
}
echo "
</tr>";
while ($row=mysql_fetch_array($rs))
{
    echo "
    <tr>";
    for ($i=0;$i<$total_field;$i++)
    {
        echo "\n   <td>" .$row[$i]."</td>";
    }
    echo "
</tr>";
}
?>
</table>
</body>

Lakukan ini terus-menerus maka program anda akan semakin efisien.
Kunjungi www.prowebpro.com untuk menambah wawasan anda.

 

Share |

Portfolio

www.wearnespc.comwww.solper.comwww.autojaya.comwww.intisolar.comsmartprint.co.idwww.ottopharm.comoliser.co.idAnd More ....

Livechat

  • Sonny
    Marketing

  • Aris G
    Support

  • Agus
    Support

  • Kurnianto
    Support

  • Eko P
    Designer

  • Andreas
    Designer

  • LiveZilla Live Help

Address

PT. Proweb Indonesia
Perkantoran Duta Merlin No F4
Jl. Gadjah Mada 3-5
Jakarta Pusat
GPS: S 6o 09' 58.1", E 106o 49' 3.3"

 

Phone : 021 - 2636 3170
    021 - 3377 0050
     
Mobile : 0856 - 9360 1378
    0812 - 806 2772
    0857 - 1586 8992
    0816 - 180 8005
     
Blackberry PIN : 23096502
     
Fax : 021 - 633 5765
     
Web : www.proweb.co.id