How To Optimize Database Tables To Make Your Pages Load Faster


As time goes by and our websites receive traffic, it is inevitable that the associated databases start to build up. The consequence of this is that websites become slower to respond and load, which as we said earlier affects negatively the user experience of our visitors.

From time to time we need to perform some housekeeping in our databases in order to get them back to normal state and get rid of the overhead which builds up in time.

We can optimize our databases manually using phpMyAdmin or by using a plugin. If you are familiar with phpMyAdmin I would suggest using that and avoid installing yet another plugin in your Wordpress site. But if on the other hand you don't feel comfortable with phpMyAdmin, then a plugin is definately a safer option for you.

If you want to use plugins:


Then I recommend WP Database Optimizer which allows you to schedule your optimization activities as well as the WP-Optimize which allows you to remove comments in the spam queue or un-approved comments with a single click.

Then of course there is Clean Options that, as described in the previous page, finds orhaned options and allows the removal of them from the wp_options table.

If you want to use phpMyAdmin (the old fashioned way):


If you think that you want to get your hands a little more dirty then open up phpMyAdmin and from the left hand column click the database of your website. Then you will see all the tables belonging to your database and on the last column on the right, you can see the overhead of each table.

What is the overhead: Well, when you delete a row from a table, the data is only marked as deleted but it is not physically removed from the disk. This creates an "overhead" of empty space in the file that holds that table. Of course when new rows are inserted they may be inserted in places to fill this "gap" but not necessarily. In other words, the only way to remove this "overhead" is by optimizing the table.

So, STEP 1:

Have a look at the overhead column on the right and find out which tables have an actual value.




STEP 2:

Check all the tables that have an overhead and need to be optimized. After that select "optimize table" from the drop down menu and wait until all your tables are optimized. It shouldn't take more than a second (depending on the size of your database of course).

You should see something like the following (depending on the tables you chose):



That's it: Your tables are now optimized and will contribute to your website's speed and efficiency.



Join the Discussion
Write something…
Recent messages
Pobman Premium
I would not suggest most people run with W3 Total Cache, unless your server is setup right you will not see all the improvements from this plugin and you can actually make things worse. If you install it and you only have options for Disk caching, i.e. no APC etc. then I would just jump ship to Super Cache which pretty much works out of the box.

Running with the CDN though is a massive improvement for most people, I now run most sites with static content on cloudfront and the difference is out of this world.

FYI Cloudfront have added Sydney Australia to their CDN... makes them a winner in my book!

Nice guide though.
Reply
Viterbi Premium
I agree: W3 Total Cache, works even better with APC. For those who don't know, APC stands for Alternative PHP Caching and it's an opcode running on the server side which offers a more efficient caching model. In other words, in some hosts you cannot enable it and you have to use the Disk Caching option in W3 Total Cache. For those cases, I fully agree, it's better to use WP Super Cache as your caching solution.

As far as the CDN and CloudFront is concerned, I also think it's one of the best CDN providers around.

Thanks for the comment Pobman!
Reply
Denisara Premium
smush it doesnt appear to work. it does nothing if I 'mass smush' and if I do them one at a time (and I have 364 pics) it times out. any suggestions? here is the error message I am getting: Automatic smushing has been disabled temporarily due to an error. Operation timed out after 20071 milliseconds with 0 bytes received

i tried a few more pics to "smush" and now they show up "BLANK" how do i get them back? this does NOT work
case in point:
http://bonestrivia.com/bones-season-eight-begins/bones-season-eight

this is one pic "smushed" out of about 12 that i tried this on. how do you reverse this ??????

i guess i have to redo that work completely if I want pictures to show UP
Reply
Pobman Premium
smush does work... some of the time.. the problem is the service is totally overloaded and Yahoo clearly dont care to improve things... it works like 1:10 times it would seem... a shame.

However other than getting the error I have never actually had an issue with it damaging a site.
Reply
Viterbi Premium
Sometime Yahoo's server gets overloaded from users doing the same thing as you do. The reason is that Smush.it sends a COPY of your image to Yahoo's server -> It optimizes this copy -> And then downloads it to your website. Next time you try it, it should be fine.

Regarding the problem with the blank picture, I also never had any issues and I also cannot find any similar incidents online. It's very safe, especially because of the way it's working (described above: copy is sent to server, optimized and then downloaded). Even if the process get's stack in the way, your original will stay intact.
Reply
Pobman Premium
There are other plugins which do similar things, though they all seem to require certain resources to be installed on your server which makes them unlikely to work for those on shared hosting.

If you need to 'fix' a whole site and the bulk change tool is not working then using the multiple upload tool at smush.it is almost as easy. Just FTP all your images down, smush and upload. The advantage here is you do get to check each image first. Thinking back to the problem of SmushIt breaking images I have now and then had issues with PNG and transparency...

A lot of people will just rely on the CDN though, because at the speed the CDN works at even large images come down lightning fast. This of course is not solving the problem, just going around it.
Reply
Denisara Premium
funny, I was told that W3 Total Cache is a mistake to use unless you get like over 10k visitors per month by either Jay, Kyle or Carson...among others. The rest of what you say to do does not make sense to a newb such as myself but thanks for the article...maybe it will help someone else
Reply
Viterbi Premium
W3 Total Cache is a really complicated plugin and you have to do your homework if you want to start playing with the advanced options it provides.

I also agree with the opinion that W3 Total Cache might perform even better in more popular sites (sites receiving more visitors). For less popular sites, WP Super Cache could be more efficient and easy to use.

Bottom line: Each site is different and you can test both options (or even other ones as well) to see what works best for you. The point here is that your website would be far more efficient and optimized if you integrated a caching solution to it (whatever that is).

P.S. I tried to make this training as "newb-friendly" as possible :-)
So please let me know where you need support and I'll do my best to help!
Reply
Viterbi Premium
Thank you Roger!
Reply
morlandroger Premium
WOW this is very comprehensive! Will come back to it and look at some of my sites again with a view to speeding up load times. Thanks for this
Reply
Top