إزالة التكرارات باستخدام فهرس فريد
في محاولة لمنع إدراج بيانات مكررة، تم إنشاء فهرس عادي عن طريق الخطأ للحقول A، B، C و D، مما أدى إلى وجود سجلات مكررة في جدول سجل 20 مليون. السؤال الذي يطرح نفسه: هل سيؤدي إضافة فهرس فريد لهذه الحقول إلى إزالة التكرارات دون المساس بالموجودة؟
تصحيح الفهرس ومعالجة التكرارات
إضافة فهرس فريد مع ستفشل عبارة ALTER TABLE بدون معدّل IGNORE نظرًا لوجود سجلات فريدة بالفعل. ومع ذلك، فإن استخدام معدل التجاهل سيؤدي إلى إزالة التكرارات.
نهج بديل لإصدارات MySQL 5.7.4 وما فوق
بالنسبة لإصدارات MySQL 5.7.4 وما فوق، حيث يكون معدل التجاهل غير مدعوم، يوصى باستخدام طريقة مختلفة:صيغة إزالة التكرارات باستخدام INSERT IGNORE
CREATE TABLE tmp_data SELECT * FROM mytable;
TRUNCATE TABLE mytable;
ALTER TABLE mytable ADD UNIQUE INDEX myindex (A, B, C, D);
INSERT IGNORE INTO mytable SELECT * FROM tmp_data;
DROP TABLE tmp_data;
اعتبارات إضافية
لا تحدد الوثائق الصف المكرر الذي سيتم الاحتفاظ به بعد استخدام معدل التجاهل. يُنصح باختبار ذلك على مجموعة بيانات أصغر قبل تطبيق الحل على جدول كبير.تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3