החסרונות בפתרון שהצעת הן שהוא פחות יעיל ופחות אמין מאשר last_insert_id, במידה ומדובר על אתר עמוס זה יכול להיות משמעותי.
במקום להשתמש ב- ORDER BY id DESC LIMIT 1 בד"כ עדיף לממש את זה עם- (SELECT MAX(id (באמצעות תכנון ואינדקסים מתאימים ניתן לקבל שיפור די משמעותי),
את ה- WHERE רצוי להשאיר עבור האמינות של התוצאה אבל אסור להתעלם מהעובדה שזה דורש עבודה נוספת מהמנוע ובעצם צורך יותר משאבים וזמן שאפשר לחסוך.
לעומת זאת אם נשתמש ב- last_insert_id -
לדעתי זה יותר נוח ופשוט למימוש ומבחינת עובדות זה גם יותר בטוח ויותר יעיל,
אין ספק שזאת בחירה טובה יותר ועדיף לבחור בה כשאפשר.
הפתרון שהצעת יעבוד אין ספק שהוא "נכון" מהבחינה הזאת.
הסיכוי שהוא יתן תוצאה לא נכונה גם ממש קלוש (ככה שלא נתייחס אליו יותר מדי), לעומת זאת מבחינת יעילות יש הבדל שיכול להיות משמעותי.
אם מסיבה מסויימת לא ניתן להשתמש ב- last_insert_id,
הפתרון שהצעת בשילוב הנקודות שציינתי כאן למעלה יהיה הפתרון הטוב ביותר הבא לדעתי (מבחינת יעילות).
זה שלא הכרת זה בסדר גמור, אבל עכשיו כשאתה מכיר - בוא ניתן לו את הפתרון האידיאלי.
עריכה:
הניסוח של "מתאימים" יותר מתאים עכשיו, בכל מקרה בוא ניתן את הפתרון האידיאלי

.