MySQL Partitioning + Foreign Keys
יש לי בעיה של טבלת MYSQL עם מנוע INNODB בעלת שתי עמודות:
product_id | customer_id
שזאת בעצם טבלה מקשרת (רבים לרבים) בין מוצרים ללקוחות.
הבעיה היא שהטבלה הגיעה ל-800K רשומות והיא מתחילה להכביד.
הבנתי שיש אפשרות לבצע Partitioning על טבלה, אבל אז אני נאלץ לוותר על ה-Constrains, שזה ייצור מעט יותר איטיות.
ראיתי שיש דרכים עקיפות לבצע foreign keys באמצעות triggers, אבל שוב, אני אעמוד במצב שללא קשרים תיווצר מעט איטיות ב-SELECTs.
אז השאלות הם כאלה:
1. האם Partitioning זה הפתרון שלי או שיש פתרון טוב יותר?
2. אם Partitioning זה הפתרון שאני צריך - האם יש דרך טובה ליישום Foreign keys בלי טריגרים?
3. עד כמה תשפיע העובדה שאני מוותר על ה-Foreign Keys מבחינת שאילתות SELECTs?
אשמח לקצת הבהרות בנושא.
תודה מראש
יש לי בעיה של טבלת MYSQL עם מנוע INNODB בעלת שתי עמודות:
product_id | customer_id
שזאת בעצם טבלה מקשרת (רבים לרבים) בין מוצרים ללקוחות.
הבעיה היא שהטבלה הגיעה ל-800K רשומות והיא מתחילה להכביד.
הבנתי שיש אפשרות לבצע Partitioning על טבלה, אבל אז אני נאלץ לוותר על ה-Constrains, שזה ייצור מעט יותר איטיות.
ראיתי שיש דרכים עקיפות לבצע foreign keys באמצעות triggers, אבל שוב, אני אעמוד במצב שללא קשרים תיווצר מעט איטיות ב-SELECTs.
אז השאלות הם כאלה:
1. האם Partitioning זה הפתרון שלי או שיש פתרון טוב יותר?
2. אם Partitioning זה הפתרון שאני צריך - האם יש דרך טובה ליישום Foreign keys בלי טריגרים?
3. עד כמה תשפיע העובדה שאני מוותר על ה-Foreign Keys מבחינת שאילתות SELECTs?
אשמח לקצת הבהרות בנושא.
תודה מראש