Bon je chercher à améliorer la qualité et donc de ce fait la rapidité des mes requetes sql.
J'ai donc put voir qu'il faillait mettre en place des indexes.
Je prends pour exemple une de mes requetes:
$sql = 'SELECT id_simply_user, id_loisirs, id_departements, id_type_loisirs, genre_loisir, url_rewrite, photo, url_fnac, titre, date_debut_sortie, description, city, manufacturer, heart FROM loisirs JOIN `regions` ON `regions`.`region_id` = `loisirs`.`id_region` WHERE loisirs.date_fin_sortie > NOW() AND loisirs.valide = 1';
// region
if(!empty($_REQUEST['region'])){
$sql .= ' AND regions.url = \''.$_REQUEST['region'].'\'' ;
}
$sql .= "ORDER BY loisirs.id_loisirs DESC LIMIT ".intval(($page-1)*$parPage).", ".$parPage ;;
Pour le coup sur cette requete j'ai donc selectionné uniquement les champs voulu et fait un tri par odre d'id_loisirs en les affichant donc plus recent au plus ancien.Avec cette histoire d'indexe pour améliorer la rapidité je ne vois pas ce que je peut faire de mieu.
Voici la strucutre de cette table (loisirs)
--
-- Structure de la table `loisirs`
--
CREATE TABLE IF NOT EXISTS `loisirs` (
`id_simply_user` int(11) NOT NULL,
`id_loisirs` int(11) NOT NULL AUTO_INCREMENT,
`nb` tinyint(4) NOT NULL,
`id_region` int(2) NOT NULL,
`id_departements` varchar(3) NOT NULL,
`valeur_departement` varchar(255) NOT NULL,
`id_type_loisirs` int(11) NOT NULL,
`genre_loisir` varchar(255) NOT NULL,
`url_rewrite` varchar(255) NOT NULL,
`photo` varchar(255) NOT NULL,
`url_fnac` text NOT NULL,
`titre` varchar(255) NOT NULL,
`date_debut_sortie` datetime NOT NULL,
`horaire_debut` varchar(50) NOT NULL,
`date_fin_sortie` datetime DEFAULT NULL,
`horaire_fin` varchar(6) NOT NULL,
`jour_semaine` varchar(255) NOT NULL,
`description` text NOT NULL,
`phone` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`website` varchar(255) DEFAULT NULL,
`street` varchar(255) DEFAULT NULL,
`postcode` int(5) unsigned zerofill DEFAULT NULL,
`city` varchar(255) DEFAULT NULL,
`horraire` varchar(5) NOT NULL,
`price` text,
`number` varchar(50) NOT NULL,
`manufacturer` text NOT NULL,
`heart` tinyint(4) NOT NULL,
`valide` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id_loisirs`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;