Sphinx indexer ralentit la base de données: comment lui donner une priorité basse?


0

Toutes mes tables utilisent InnoDB, et j’ai défini sphinx sql_range_step au minimum, ce qui est 128. Cela a beaucoup amélioré les performances, mais reste très lent si vous faites une demande juste après le début d’une nouvelle étape.

Je suis sûr que cela fonctionnerait parfaitement si je pouvais réduire le pas de la plage à 10 ou à quelque chose du genre, mais quelqu'un a constaté que la valeur minimale est codée en dur et qu'il n'y a aucun moyen de la modifier (autre que l'édition du source).

Je me demandais donc s'il existait un moyen de gérer cela directement à partir de MySQL. Lorsque j'indexe une base de données, les autres bases de données ne sont pas affectées. Par conséquent, ce n'est pas le serveur entier qui a été ralenti, mais uniquement la base de données que j'indexe.

Y at-il un moyen de donner moins de priorité à un utilisateur ou une requête, ou quelque chose?

Réponses:



0

Regarde ça

L'idée est d'insérer du code dans votre requête qui limite l'exécution de la requête.

Pour une approche plus rapide, vous pouvez utiliser une requête comme celle-ci:

select <your stuff> from <your table where <your condition> and (sleep (0.1) or 1)

La requête sphinx attendra 0,1 seconde avant de terminer.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.