web-dev-qa-db-fra.com

Comment diviser la table en base de données?

Existe-t-il une option pour split la tables dans plus tables dans différentes databases? Le problème est que ma table wp_posts est trop grosse et que l'affichage dans les tableaux de bord prend beaucoup de temps (plus de 20 secondes). J'ai essayé le HyperDB mais ce plugin peut diviser la base de données en différents databases mais le tables reste le même ... Exemple: wp_posts de database1 et wp_postmeta de database2, mais je dois lire et écrire d'autres méthodes ...

Quelque chose comme ci-dessous

database1 --> wp_posts [from row 0--10000]

database2 --> wp_posts [from row 10001 to 20000]

etc...

Je pense que searching une seule post entre beaucoup de databases n'est pas un gros problème ... il y aura un grand effet lorsque searching sur une centaine de milliers de posts une requête spécifique ... Mon idée de projet étant de faire en sorte que WordPress puisse être traité products(posts), l'analyse d'une seule table (wp_posts) prend donc beaucoup de temps, mais le fractionnement de cette table en plusieurs tables dans différents databases (une base de données aura son propre serveur) donnera un résultat très impressionnant.

C'est possible ou pas?

1
user564285

L'éclatement n'est probablement pas ce que vous voulez, surtout si le seul problème est la zone d'administration. Si tout se passe bien au début, vous allez probablement bien.

Combien de messages parle-t-on au total?

Certaines choses qui valent la peine d’être essayées (veuillez d’abord sauvegarder votre base de données)

1. Supprimer toutes les anciennes révisions de publication

Un compte rapide des révisions de publication sur mon site révèle 5080 d'entre elles - il n'y a qu'un total de 700 publications.

Exécuter une requête de suppression comme celle-ci devrait le faire. Veuillez d'abord tester! Ne l'exécutez pas simplement sur votre base de données de production.

DELETE FROM {yourprefix}_posts WHERE post_type = 'revision';

2. Exécuter une commande d’optimisation de table

OPTIMIZE TABLE est conçu pour nettoyer les tables qui changent fréquemment. Puisque vous venez de supprimer ce qui était probablement un grand nombre de lignes, cela ne fait pas de mal.

OPTIMIZE TABLE {yourprefix}_posts;

3. Arrêter WP de l'enregistrement de tant de révisions de publication

Pour ce faire, il existe une constante que vous pouvez définir dans wp-config.php.

Vous pouvez les désactiver:

<?php
define('WP_POST_REVISIONS', false);

Ou limitez-les à un nombre maximal.

<?php
define('WP_POST_REVISIONS', 3);

4. Supprimer les commentaires anciens/commentaires indésirables

Vous pouvez également essayer de supprimer les anciens commentaires de spam de la table des commentaires:

DELETE FROM {yourprefix}_comments WHERE comment_approved != '1';
1
chrisguitarguy