mysql - فنية - حرف ابداعيه في خمس دقائق بالعربي



التبديل من الخلية إلى بوستغريزل-نصائح وحيل و غوتشاس؟ (4)

انها ستكون مهمة ضخمة كما سيكون لديك لاختبار الخاص بك كامل قاعدة قاعدة - كل استعلام واحد، في أي مكان، ل

  • بناء الجملة
  • السلوك الصحيح (أي يعود نفس النتائج)
  • الأداء - على سبيل المثال هل هناك أي انحدارات أداء / تحسينات، ويمكنك التعامل معها؟
  • معالجة الأخطاء - أنها لا تتصرف نفسها في ظل ظروف الخطأ، ربما اعتمدت التعليمات البرمجية الخاصة بك على رموز خطأ معينة

عمليا سوف تحتاج إلى إلقاء نظرة على:

  • اسنرجاع البيانات
  • استخدام مساحة القرص
  • استخدام الذاكرة
  • يمكن لمرة واحدة ترحيل البيانات - مهمة كبيرة / تستغرق وقتا طويلا
  • خطة التراجع عن إذا فشلت
  • الرصد - كيف يمكنك مراقبة ميسكل الخاص بك، ويمكن تكييف تلك الأساليب
  • (إذا كان ذلك مناسبا) - النسخ المتماثل

سيكون لديك بالتأكيد للقيام كميات كبيرة من اختبار الأداء قبل النظر في مثل هذه الخطوة.

هذه التكاليف تجعل الانتقال إلى قاعدة بيانات مختلفة مكلفة للغاية بالنسبة لمعظم التطبيقات غير تافهة. النظر في فوائد جدا بعناية ضد التكاليف الشاسعة، واسعة للقيام بكل ما سبق.

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

https://src-bin.com

أنا أفكر في التحول من ميسكل إلى بوستغريزل.

ما هي النصائح الخاصة بك، والحيل و غوتشاس للعمل مع بوستغريزل؟

ما الذي يجب أن تبحث عنه ميسكلر؟

انظر أيضا: كيف يختلف هو بوستغريزل إلى الخلية؟
انظر أيضا: ترحيل من ميسكل إلى بوستغريزل

ملاحظة - لا أعتقد أن هذا نسخة مكررة. على وجه الخصوص نوع الإجابات هي ديفيرنت تماما والردود هنا أكثر من ذلك بكثير تنفيذ التفاصيل، وهو ما كنت أبحث عنه


Answer #1

قبل تحويل، تعيين ميسكل الخاص بك إلى أنسي-ستريكتنيس من خلال بدء تشغيل الخادم مع: --transaction-إيسولاتيون = سيرياليزابل --sql-مود = أنسي

تأكد من أنك لا تستخدم جداول ميسام.

ميسكل يسمح الكثير من التحويلات لا ينبغي. بغ سوف تتطلب المدلى بها.

سوف بروكس المخزنة، وظائف، ومشغلات يكون لإعادة كتابة. بغ يمنحك اختيار اللغات لهذه، ولكن لديك لتثبيت اللغات. انها ليست سهلة الاستخدام كما ميسكل.

بغ سوف تسمح فقط في أعمدة قائمة مختارة التي هي في مجموعة من قبل أو هي التجميعات؛ سوف ميسكل الغش عن طريق تحديد القيمة الأولى في المجموعة إذا قمت بذلك.

ميسكل يضيف مجموعة من الإضافات: المشغل غير متساوي يمكن أن يكون != كما هو الحال في C، فإنه يسمح '&&' كمرادف ل 'و'، '||' ل "أو" الخ على وجه الخصوص، يستخدم بغ "||" يعني سلسلة الوتر.

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


Answer #2

ذهبت من خلال هذا نفسي، وأنا لا يزال أنا ...

  • نص حساس لحالة الأحرف
  • عدم INSERT IGNORE و REPLACE
  • صب الصريح حاجة في كل مكان تقريبا
  • لا عود
  • LOAD DATA INFILE ( COPY وثيقة، ولكن ليس قريبة بما فيه الكفاية)
  • تغيير autoincrement إلى SERIAL
  • على الرغم من أن شكل سيئة في الخلية، في بوستجرس، INNER JOIN دون شرط ON لا يمكن أن يحدث، استخدام CROSS JOIN أو ما شابه ذلك
  • COUNT(*) يمكن أن يكون بطيئا مجنون
  • يتم ترميز قواعد البيانات مع مجموعات الأحرف، وليس الجداول
  • هل يمكن أن يكون قواعد بيانات متعددة، مع مخططات متعددة (ميسكل حقا قاعدة بيانات واحدة فقط ومخطط متعددة)
  • التقسيم مختلف
  • ميسكل interval مقابل بوستغريز interval (لفترات زمنية)
  • إعادة تسمية العمود الضمني، يتطلب بوستغريز AS
  • لا يمكن تحديث جداول متعددة في نفس الوقت في بوستغريز
  • وظائف بوستغريز قوية. لذلك ليس هناك CALL proc(); . إعادة كتابة proc() كدالة و SELECT proc(); .

Answer #3

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

https://github.com/philipsoutham/py-mysql2pgsql

تم تثبيته بواسطة

$ pip install py-mysql2pgsql

يركض

$ py-mysql2pgsql

في أي مجلد، وأنه سيتم إنشاء ملف إعدادات قالب بالنسبة لك (mysql2pgsql.yml) التي يمكنك تحرير وأدخل تفاصيل قواعد البيانات الخاصة بك في.

اضطررت إلى تثبيت أرجبارس للعمل.

$ pip install argparse

عندما يتم ملء تفاصيل قاعدة البيانات الخاصة بك، فقط تشغيله مرة أخرى

$ py-mysql2pgsql

في نفس المجلد مثل ملف الإعدادات، و وام، كنت فعلت. لم يتم طباعة أي شيء على الشاشة، ولكن تم نسخ قاعدة البيانات الخاصة بي تماما بعد ذلك.





load-data-infile