J'ai une base de données MySQL avec 2 millions d'enregistrements. J'utilise déjà sphinx pour indexer les données et ensuite les rechercher rapidement.
J'ai deux index. Un gros index qui est mis en rotation chaque jour à 3 heures du matin, et un plus petit qui contient uniquement les changements incrémentaux. Cet index est mis à jour toutes les 30 minutes et n'indexe que les nouvelles lignes de la base de données (celles qui sont insérées après 3 heures du matin).
Tout va bien. La recherche fonctionne. Mais je cherche quelques améliorations. Je n'ai pas besoin de réindexer la grande base de données chaque jour, car une fois que l'information est insérée dans la base, elle ne change pas (je n'ai que des insertions, pas de mises à jour). Donc reconstruire le grand index est absolument inutile.
Est-il possible de diviser cet indice en indices annuels ou même mensuels ? Cela va-t-il accélérer ou ralentir les requêtes de recherche ? Avez-vous des exemples de l'organisation de l'index et des sources de données ? Serait-il préférable de passer à des index en temps réel ?