سؤال

مرة واحدة في اليوم الذي أحتاج إلى تحديث جدول MySQL مع ملف جديد تم تنزيله من الشبكة باستخدام FTP ثم MySQLIMPORT. ومع ذلك، أريد موقع الويب الخاص بي للاستمرار بسلاسة خلال عملية MySQLIMPORT، والتي تستغرق بعض الوقت (طاولة كبيرة). ماذا ستكون طريقة جيدة لضمان أن المستخدمين لا ينتظرون الاستيراد حتى النهاية؟ أفكر في الاستيراد إلى طاولة مؤقتة ثم إعادة تسمية ذلك. هل هذه خطة جيدة؟

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

المحلول

حقيقة معروفة هي أنه يمكنك التسلسل أكثر من بيان إعادة تسمية واحد في MySQL وسيقوم بإجراء جميع التغييرات بشكل جذري.

create table newtable like oldtable;
insert into newtable .......
rename table oldtable to deleteme, newtable to oldtable;
drop table deleteme;

سيؤدي جدول إعادة التسمية إلى حظر القراء (في الواقع، سيحظر أي دقة من الاسم) ولكن يجب أن تكون عملية سريعة للغاية.

نصائح أخرى

إذا كانت حالة تحديث تدريجي، فيمكنك ببساطة خنق إدخال البيانات الجديدة عبر كرون / جدولة.

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

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

سيؤدي ذلك إلى ظهور بيانات جديدة في دفعات، ولكنها سيتيح لك الحفاظ على تشغيل الموقع أثناء تحديثه.

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