ההבדל הוא יותר לוגי
primary key נועד לתת אפשרות לזהות רשומה. בין האפשרות לזיהוי רשומה לביצועים לא אמור להיות קשר. אינדקס נועד לשפר את הביצועים. unique index משמש גם לאכוף ייחודיות של נתונים, אבל לא נועד לזהות רשומה. מאחר שמאחורי primary key עומד unique index, ושניתן לזהות רשומה באמצעות unique index (למרות, שזה לא תפקיד האינדקס), קל מאד להתבלבל בינהם, ולהחליט שהם אובייקטים זהים, אבל גם אם האימפלמנטציה שלהם מאחורי הקלעים זהה (השרת בונה unique index לשדות, שמשמשים כprimary key), התפקיד שלהם שונה. הבדלים קלים נוספים הם, שניתן להגדיר מספר אינדקסים, אבל רק primay key אחד, וששדות שמשתתפים בprimary key לא יכולים להכיל את הערך null (לעומת זאת שדות שמשתתפים בunique index יכולים בהתאם להגדרת השדות להכיל את הערך null).