Maison > base de données > tutoriel mysql > Comment puis-je optimiser PostgreSQL pour les tests Swift afin qu'ils correspondent à la vitesse de SQLite ?

Comment puis-je optimiser PostgreSQL pour les tests Swift afin qu'ils correspondent à la vitesse de SQLite ?

DDD
Libérer: 2025-01-13 16:23:44
original
108 Les gens l'ont consulté

How Can I Optimize PostgreSQL for Swift Testing to Match SQLite's Speed?

Améliorer les performances de PostgreSQL dans les tests Swift

Le défi

Le passage de SQLite à PostgreSQL ralentit considérablement la vitesse d'exécution des tests, doublant souvent le temps d'exécution.

L'objectif

Obtenez des performances de test comparables entre PostgreSQL et SQLite sans modifier le code de l'application. La solution idéale consiste à optimiser les paramètres de connexion.

Stratégies d'amélioration

1. Affiner le serveur PostgreSQL

  • Compromettre l'intégrité des données (à utiliser avec prudence !) : Les paramètres fsync=off et full_page_writes=off désactivent la récupération après incident et les contrôles d'intégrité des données, ce qui accélère les opérations d'écriture. Cela ne doit être fait que dans des environnements de test contrôlés.
  • Tables UNLOGGED : Utilisez des tables UNLOGGED pour contourner la surcharge de Write-Ahead Logging (WAL), améliorant ainsi les performances d'écriture. Notez que les données sont perdues en cas de crash.
  • Augmentation de la mémoire cache : Augmentez shared_buffers pour allouer plus de mémoire à la mise en cache, réduisant ainsi les E/S disque.
  • Augmentation de la mémoire de travail : Ajustez work_mem pour fournir plus de mémoire pour le tri et d'autres opérations en mémoire.

2. Optimisation du système d'exploitation hôte

  • Gestion de la mémoire virtuelle : Modifiez les politiques de réécriture du système d'exploitation pour minimiser le vidage inutile du disque.

3. Optimisation des requêtes et de la charge de travail

  • Tables temporaires : Utilisez des tables temporaires pour la manipulation des données afin de réduire le trafic WAL.
  • Tables UNLOGGED (encore une fois !) : Utilisez les tables UNLOGGED pour les données temporaires qui peuvent être facilement recréées.
  • TRUNCATE plutôt que DELETE : Préférez TRUNCATE pour un nettoyage plus rapide des tables, particulièrement bénéfique pour les troncatures fréquentes de nombreuses petites tables.
  • Indexation stratégique : Créez des index sur des clés étrangères pour améliorer DELETE les performances, mais évitez la surindexation.

4. Améliorations matérielles

  • RAM abondante : Une RAM suffisante permet à la base de données de résider entièrement en mémoire, améliorant considérablement la vitesse.
  • Disques SSD : Les SSD offrent un accès au stockage beaucoup plus rapide et une latence d'E/S réduite.

Résumé

Ces techniques d'optimisation peuvent améliorer considérablement les performances de PostgreSQL pour les tests. Bien que le seul ajustement des paramètres de connexion puisse ne pas correspondre pleinement à la vitesse de SQLite, une combinaison de ces stratégies entraînera une amélioration considérable des performances de vos tests Swift.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal