Utilisation de la compression de données en communication entre l'application et la base de données?

StackOverflow https://stackoverflow.com/questions/676647

  •  21-08-2019
  •  | 
  •  

Question

Je projet à venir où nous avons besoin de l'application pour envoyer des données sur la base de données compressées dans et à d'autres applications. La compression peut utiliser l'algorithme tel que gzip ou zlib.

Quelqu'un peut-il me montrer un peu d'aide, en particulier pour le composant VCL (ou ActiveX) qui permet de compresser le trafic de données entre l'application et la base de données de communication?

Il suffit de penser à bavarder ou à l'application IM, mais l'utilisation entre chaque compression du trafic de données.

Mon environnement:
- Delphi 7 ou BDS 2006
- utilisera Indy pour la communication entre l'application
- utilisera ADO pour une application de communication dans la base de données
- TCP / IP ou HTTP seront utilisés comme protocole

Merci,
Dels

Était-ce utile?

La solution

Vous pouvez utiliser un algorithme de compression pour compresser octets ou un flux si vous utilisez Indy. Comme la construction en compression zlib. C'est parce que vous contrôlez les deux côtés de la communication. Cela est différent lors de la connexion à une base de données. Vous ne pouvez compresser si le serveur de base de données comprend la compression. En général, vous ne compressent pas, mais que ce soit pris en charge par les pilotes de base de données que vous utilisez. Donc, cela dépend des options qu'ils offrent.

http://www.swissdelphicenter.ch/torry/showcode.php ? id = 1617 est un exemple sur la façon de compresser un filestream avec ZLib de Delphi. Comprimant un flux d'envoyer avec Indy est à peu près le même.

Autres conseils

Je ne suis pas au courant d'aucune façon de compresser les données pendant la transmission et ont la base de données comprend automatiquement et décomprimer à l'autre bout juste pour économiser de la bande passante, si c'est ce que vous parlez. Et je ne recommande la compression des données à envoyer à votre base de données si elle est un grand blob ou bloc de texte. Si oui, compresser tout comme Lars mentionné et stocker le résultat compressé comme un champ blob. Mais pour les données ordinaires, il est préférable de le laisser décompressé et en format normal SQL. De cette façon, votre base de données peut optimiser son stockage pour la vitesse et l'indexer correctement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top