PHP / MySQL Database Optimization Function

By  on  

After frequent record deletion from your MySQL database tables, your tables can acquire overhead. Overhead is empty space left inside the database table due to the deletions. A great way to speed up your MySQL database, not to mention keep it compact, is to use a simple PHP function to optimize your database tables:

/*  OPTIMIZE ALL TABLES  */
function optimize_database($DATABASE_LINK) {
	$result = mysql_query('SHOW TABLES', $DATABASE_LINK) or die('Cannot get tables');
 	while($table = mysql_fetch_row($result)) {
		mysql_query('OPTIMIZE TABLE '.$table[0], $DATABASE_LINK) or die('Cannot optimize '.$table[0]);
	}
}

I use the $DATABASE_LINK variable to keep my connection throughout my PHP script. Obviously it's not required, so you can modify the above function if you don't keep that variable.

Recent Features

  • By
    Designing for Simplicity

    Before we get started, it's worth me spending a brief moment introducing myself to you. My name is Mark (or @integralist if Twitter happens to be your communication tool of choice) and I currently work for BBC News in London England as a principal engineer/tech...

  • By
    Page Visibility API

    One event that's always been lacking within the document is a signal for when the user is looking at a given tab, or another tab. When does the user switch off our site to look at something else? When do they come back?

Incredible Demos

  • By
    MooTools ASCII Art

    I didn't realize that I truly was a nerd until I could admit to myself that ASCII art was better than the pieces Picasso, Monet, or Van Gogh could create.  ASCII art is unmatched in its beauty, simplicity, and ... OK, well, I'm being ridiculous;  ASCII...

  • By
    Image Reflection with jQuery and MooTools

    One subtle detail that can make a big difference on any web design is the use of image reflections. Using them too often can become obnoxious but using reflections on large, "masthead" images is a classy enhancement. Unfortunately creating image reflections within your...

Discussion

  1. Dear sir,
    where we use this function?
    i need help, my hosting SQl is overhead
    i use this function in my function Class php file and upload it
    but i see it still overhead
    let me know how to use it

    reply back

    • With a PHP script, you can have it as a stand alone (with connection info), or you can put it as part of your code, as I have.

  2. Great script. I was looking for a way to compact a MySQL database, and this is perfect. Thanks.

  3. trimd

    This article is like my ass,

    its big shit

  4. Freed

    @trimd: hei trimd, you so stupid!

    if you want fast compact you can make a program with delphi or VB6 to compact it. i make a application to compact my mysql database 370MB (7years period) become 90MB. Look more carefully trimd.

    make a little application to compact it, use Delphi or VB6
    don’t look others samples
    grow trimd !

    for more explanation go to mysql site.
    or dev forum for VB

    try to become great programmer.
    not like junior!

  5. Thanks, for the scripts because so far I have only seen two, the one for backing up the tables and this one above. They all look to be great and I’m use them in the my project.

  6. sohail

    Thanks. I grabbed this code and created a WP plugin. Thanks again. :-)

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!