Attention, l'index peut être utilisé tant que le motif de recherche ne commence pas par un joker. Mais MySQL peut aussi choisir de l'ignorer s'il y a trop de résultats et chercher directement dans la table sans passer par l'index. En revanche, avec SUBSTR() c'est sûr, pas d'index dans les versions actuelles de MySQL (pas d'index sur les fonctions pour l'instant).l'index n'est pas utilisé puisqu'il ne s'agit pas d'une recherche exacte
Voici la structure de ma table.Attention, l'index peut être utilisé tant que le motif de recherche ne commence pas par un joker. Mais MySQL peut aussi choisir de l'ignorer s'il y a trop de résultats et chercher directement dans la table sans passer par l'index. En revanche, avec SUBSTR() c'est sûr, pas d'index dans les versions actuelles de MySQL (pas d'index sur les fonctions pour l'instant).l'index n'est pas utilisé puisqu'il ne s'agit pas d'une recherche exacte
@Nico : tu n'as pas posté le schéma de tes tables... si c'est écrit en rouge à l'écran c'est vraiment que c'est indispensable pour répondre à ce genre de questions. Tant que tu y es, il faudrait que tu postes un EXPLAIN de chacune des requêtes que tu as essayé, merci.



Euh, je n'ai pas pensé à le préciser, mais quand on parle de structure de la table c'est sous la forme d'une commande CREATE TABLE (dans l'onglet Exporter). Est-ce que tu pourrais poster ça stp ? Entre autres avantages, cette méthode a celui de nous permettre de créer la même table facilement, et surtout la commande indique les indices de la table, pas seulement les colonnes.
Code : Tout sélectionner
CREATE TABLE `client` (
`id_client` mediumint(8) unsigned NOT NULL auto_increment,
`nom_societe` varchar(100) NOT NULL default '',
`adresse_client` varchar(255) NOT NULL default '',
`cp_client` varchar(5) NOT NULL default '',
`ville_client` varchar(255) NOT NULL default '',
`lat_client` varchar(10) NOT NULL default '',
`long_client` varchar(10) NOT NULL default '',
`tel_fixe_client` varchar(15) NOT NULL default '',
`tel_portable_client` varchar(15) NOT NULL default '',
`tel_fax_client` varchar(15) NOT NULL default '',
`prestation_client` text NOT NULL,
`logo_client` varchar(50) NOT NULL default 'nologo.jpg',
`video_client` text NOT NULL,
`site_web_client` varchar(150) NOT NULL default '',
`fiche_vue_client` smallint(5) unsigned NOT NULL default '0',
`valider_client` tinyint(1) NOT NULL default '0',
`date_inscription` datetime NOT NULL default '0000-00-00 00:00:00',
`meta_description` varchar(255) NOT NULL default '',
`secteur_activite_client` text NOT NULL,
`promotions_client` text NOT NULL,
`email_client` varchar(255) NOT NULL default '',
PRIMARY KEY (`id_client`),
KEY `nom_societe` (`nom_societe`)
) TYPE=MyISAM AUTO_INCREMENT=7759 ;
Code : Tout sélectionner
ALTER TABLE client ORDER BY nom_societe ASC