Optimisation du thème WordPress : 30 requêtes SQL gagnées photo

Optimisation du thème WordPress : 30 requêtes SQL gagnées

speedy_gonzales

Je viens d’effectuer une jolie petite optimisation qui devrait bien alléger le serveur sur lequel nous tournons. Vous vous souvenez de l’article WordPress : réduire le nombre de requêtes SQL des thèmes, écrit il y a quelques mois ?

Et bien il se trouve que j’avais tout optimisé tous les fichiers de mon thème – sauf le menu du site qui se trouve dans le fichier header.php !

Ce dernier contenait quasiment une trentaine de requêtes SQL destinées à obtenir les permalinks des pages statiques…

Je m’étais dit à l’époque que si je changeais le permalink d’une page, cela se reflèterait immédiatement dans le menu. Quand j’y pense aujourd’hui, c’est vraiment ridicule.

Lire la suite

Corruption des tables MySQL sous SAM Broadcaster

Ce week-end, en lançant comme souvent Thunderstruck Radio, SAM Broadcaster ne voulait plus jouer aucune chanson : la file d’attente (Queue list) était vierge, sans aucune possibilité de la remplir. ‘Nous voilà bien’ me dis-je alors intérieurement. En basculant sur les différents bureaux de SAM, le gestionnaire d’évènements (event log) m’a appris pourquoi plus rien ne fonctionnait comme avant :

Corruption de la table MySQL

La ligne qui nous intéresse est celle-ci :

Can’t open file : ‘queuelist.MYI’. (errno : 145)

Lire la suite

WordPress hack : repair & optimize your database

Au vu des récentes tribulations de Claude, j’ai quelque peu amélioré le script PHP que j’ai écrit pour SkyMinds.Net et qui me permet de réparer et d’optimiser toutes les tables de ma base de données WordPress en un seul clic. Pour les intéressé(e)s, voici le code :


/*
Hack Name: Fix'n'Optimize
Hack URI: https://www.skyminds.net/wordpress-hack-repair-optimize-your-database/
Description: This hack repairs and optimizes your WP database.
Version: 1.0
Author: Matt
Author URI: https://www.skyminds.net/
*/ 

// Include DB config file.
include("wp-config.php");

// Remove useless data in some tables prior to optimizing.
$trunk = $wpdb->query("TRUNCATE TABLE `naatan_useronline`");
$trunk = $wpdb->query("TRUNCATE `wp_bad_behavior`");

// Grab table names.
$grab_all_tables = $wpdb->get_col("SHOW TABLES");

// Go through the list : repair/optimize all tables.
foreach($grab_all_tables as $table_name)
{
	$wpdb->query("REPAIR TABLE `".$table_name."`");
	$wpdb->query("OPTIMIZE TABLE `".$table_name."`");
}

Je lance ce script dans un navigateur de temps en temps – une fois par semaine environ -, histoire d’avoir une base de donnée ordonnée et réactive. Je ne transforme pas ce hack en plugin pour le moment, étant donné que c’est un script à lancer occasionnellement. On pourrait en faire un cron remarquez. Si j’ai le temps, pendant les vacances…

Backup files and databases easily with cron photo

Backup files and databases easily with cron

This post is an extension to my former tutorial : Backup all your MySQL databases with one line of cron, which can now be considered as obsolete since some people reported having some issues with the gzip file generation.

So here is another attempt at dealing with the security of your files and databases on your domain.

In this tutorial, I assume your web host has Cpanel installed with the cron features that will backup everything for us at regular intervals.

To access the Cron Manager in Cpanel :

  • Go to Cpanel > Cron Jobs
  • Select the Standard or Advanced view – the choice is yours !

Let’s assume you chose the “Standard view” for the sake of simplicity and ease of configuration. First, backup your files.

Lire la suite

Backup all your MySQL databases with one line of cron photo

Backup your MySQL databases with a one-liner crontab

As I’ve lost some data in my MySQL database recently, I’ve decided to make backups more regularly and I’ve been playing with Cron in Cpanel in order to set up automatic backups of all my databases.

Here’s a short how-to which might help some people out :

Go to Cpanel > Cron Jobs

Select between Standard or Advanced, that’s up to you !

In the command field, type this :

date=`date -I`; mysqldump -u yourusername -p yourpassword --all-databases > /home/LOGIN/backups/xbackup_$date.sql; gzip /home/LOGIN/backups/xbackup_$date.sql

Now let’s see what this all means : the date line formats the date so that we can append it to our backup filename.

We then ask mysql to dump all databases into /home/LOGIN/public_html/backups/xbackup_$date.sql, where :

  • LOGIN is your Cpanel name, using “yourusername” as user (-u) and “yourpassword” as the password (-p).

Notice the date variable inserted in the filename. Finally our SQL file is gzipped using the gzip directive.

You now have to set your backup frequency. And relax !

Notes :

1. I’ve created a user “backup” with all privileges in Cpanel > MySQL databases and associated him with all my databases so that I can backup everything in one single file with just one line of cron.

2. Protect your backup directory so that people cannot download the whole of you SQL data. You can enable directory protection with Cpanel > Password protect directories > *select your backup directory* > *check the box and enter a username/password* > *validate*.

That’s it ! Have fun, you should never have to worry about your databases’ backups again ;-)