عن طريق ضغط البيانات في الاتصالات بين التطبيق وقاعدة البيانات؟

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

  •  21-08-2019
  •  | 
  •  

سؤال

ولدي مشروع القادمة حيث نحتاج تطبيق لإرسال البيانات على ضغطها إلى قاعدة البيانات والتطبيقات الأخرى. ضغط يمكن استخدام خوارزمية مثل GZIP أو ZLIB.

ويمكن لأي شخص أن يشير لي بعض المساعدة، وخصوصا لمكون VCL (أو اكتف) التي يمكن أن تضغط حركة مرور البيانات بين التواصل وتطبيق قاعدة البيانات؟

ومجرد التفكير في الدردشة أو IM تطبيق ولكن استخدام الضغط بين كل حركة البيانات.

وبيئتي:
- دلفي 7 أو BDS 2006
- سوف تستخدم إندي للتواصل بين تطبيق
- سوف تستخدم ADO للاتصال تطبيق إلى قاعدة بيانات
- TCP / IP أو HTTP ستستخدم كبروتوكول

شكرا،
دلس

هل كانت مفيدة؟

المحلول

هل يمكن استخدام أي خوارزمية ضغط لضغط بايت أو دفق إذا كنت تستخدم إندي. مثل البناء في ضغط ZLIB. هذا هو لأنك السيطرة على كل من الجانبين من التواصل. أن يختلف عند الاتصال إلى قاعدة البيانات. يمكنك ضغط إلا إذا كان خادم قاعدة البيانات يفهم ضغط. وعادة ما لا ضغط ولكن دعونا يتم التعامل معها من قبل برامج تشغيل قاعدة البيانات الذي تستخدمه. بحيث يعتمد على الخيارات التي تقدمها.

http://www.swissdelphicenter.ch/torry/showcode.php ؟ ID = 1617 مثال على كيفية ضغط FILESTREAM مع ZLIB دلفي. ضغط تيار إرسالها مع إندي هو تقريبا نفسه.

نصائح أخرى

وأنا لست على علم بأي شكل من الأشكال لضغط البيانات أثناء الإرسال ويكون قاعدة البيانات تلقائيا فهم وضغط على الطرف الآخر فقط لانقاذ على عرض النطاق الترددي، إذا كان هذا هو ما نتحدث عنه. وانصح فقط ضغط البيانات لإرسالها إلى قاعدة البيانات الخاصة بك إذا انها BLOB كبيرة أو كتلة من النص. إذا كان الأمر كذلك، مجرد ضغط عليه مثل المذكورة لارس وتخزين نتيجة ضغط كحقل BLOB. ولكن للحصول على بيانات عادية، فمن الأفضل أن تترك ضغط وفي شكل SQL العادي. بهذه الطريقة قاعدة البيانات الخاصة بك يمكن تحسين التخزين للسرعة ومؤشر بشكل صحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top