تقریبا هیچ کدوم از اینها به هم مربوط نیستند!!
unique بودن که کلا یه چیز دیگست.... یعنی تو اون ستون نمی شه مقدار تکراری داشت، به هر نحوی.... و اگر چنین بشه، بانک ارور بر میگردونه.
index ..... وقتی رو یک ستون ایندکس تعریف میشه، اون ستون راحت تر جستجو میشه. (عموما سرعت insert کم میشه، سرعت update فرقی نمی کنه، سرعت select خیلی زیاد میشه) توجه کنید که یک ستون توی بانک، عموما 1 بار نوشته میشه و هزاران بار خونده میشه.
چند نکته....
1- ایندکس گذاشتن، حجم بانک رو بالا می بره.
2- ایندکس گذاشتن، تا یه حدی سودمند می باشد، اگر زیاد بشه، ضرر خواهد داشت. (البته در 100% مواقع چنین نیست)
3- به طور ساده میشه گفت، در ستون هایی که در قسمت where کوئری های select ارسال میشن، باید ایندکس گذاشت.
primary به کلید اصلی یک جدول گفته میشه (میتونه شامل یک یا چند ستون باشه) این کلید ---قطعا--- یونیک می باشد، اما یک فیلد یونیک، حتما کلید اصلی (primary) نیست.
fulltext هم برای ستون های متنی در MySQL مطرح میشه و نوعی جستجوی پیشرفته در اون ستون رو (مثل کوئری هایی که به گوگل ارسال میشه) روی اون ستون خاص فعال می کنه.