< /p>
Comme ça
< /p>
La structure du tableau est la suivante :
CRÉER TABLE `lmx_app_category` (
`id` int(11) NON NULL PAR DÉFAUT '0' COMMENTAIRE 'Numéro de catégorie',
`pid` tinyint(4) NON NULL PAR DÉFAUT '1' COMMENTAIRE 'Type de classification (actuellement deux : 1 : application, 2 : jeu)',
`name` varchar(50) NOT NULL COMMENT 'Nom de la catégorie',
CLÉ PRIMAIRE (`cat_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Tableau de classification des applications';
CRÉER UNE TABLE `lmx_apps` (
`id` int(11) NON NULL AUTO_INCREMENT COMMENT 'numéro d'application',
`cat_id` int(11) NON NULL PAR DÉFAUT '0' COMMENTAIRE 'Numéro de catégorie',
`name` varchar(100) NON NULL COMMENTAIRE 'nom de l'application',
`year` char(5) NON NULL PAR DÉFAUT '0' COMMENTAIRE 'Année',
`down_count` bigint(20) NON NULL PAR DÉFAUT '0' COMMENTAIRE 'Téléchargements',
`hit_count` bigint(20) PAR DÉFAUT '0' COMMENTAIRE 'volume de recherche',
CLÉ PRIMAIRE (`id`),
) MOTEUR=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
J'ai maintenant créé deux index communs :
< /p>
Mais il y a plusieurs problèmes avec ces deux index. Si je clique sur Rechercher tout, le tri ne sera pas indexé. Comment résoudre ce problème de sélection de tout sans indexation lors de la recherche de catégories ?
citation de bloc >Le SQL pour l'indexation est le suivant :
-- EXPLIQUER SELECT a.id,a.cat_id,a.`name`,a.down_count,b.`name` FROM `lmx_apps` a JOINTURE INTÉRIEURE `lmx_app_category` `b` SUR `a`.`cat_id`=`b`.`id` OÙ a.cat_id = 103 COMMANDE PAR a.down_count DESC LIMITE 10,20
Le SQL sans indexation est le suivant
SELECT a.id,a.cat_id,a.`name`,a.down_count,b.`name` FROM `lmx_apps` a JOINTURE INTÉRIEURE `lmx_app_category` `b` SUR `a`.`cat_id`=`b`.`id` -- OÙ -- a.cat_id IN (SELECT cat_id FROM lmx_app_category WHERE orgame = 1) -- Lorsqu'il n'y a pas de condition cat_id ou que la condition est COMMANDE PAR a.down_count DESC LIMITE 10,20
Maintenant, je pense à un autre plan, qui est
Supprimez le champ cat_id de la table d'application et l'index créé par cat_id
Créez une table de relations entre la table de classification (lmx_app_category) et la table d'application (lmx_apps),
Les champs sont id, app_id, cat_id
Créez un index sur cette table associée. Je ne sais pas à quoi ressemble cette solution
.