1. Первичный и уникальный ключи - те же самые btree индексы + ограничение уникальности.
2. Никакого
3. http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]/show-index[dot]html
4. да, индексов можно создавать много. Другое дело, что два одинаковых индекса бесполезны и только мешают как планировщику, так и замедляют запись
Индекс создаётся с именем, просто имя генерируется автоматически.
5. Имя индекса используется в explain. Ещё в хинтах, но ими всё равно лучше не пользоваться. А, и удаляются индексы по имени.
6. удалятся вместе с таблицей
(Добавление)
Кстати, mysql 5.7.11:
Цитата:mysql> alter table billing add index(user_id);
Query OK, 0 rows affected (0,01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table billing add index(user_id);
Query OK, 0 rows affected, 1 warning (0,01 sec)
Records: 0 Duplicates: 0 Warnings: 1
mysql> show warnings;
+---------+------+---------------------------------------------------------------------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+---------------------------------------------------------------------------------------------------------------------------------+
| Warning | 1831 | Duplicate index 'user_id_2' defined on the table 'test.billing'. This is deprecated and will be disallowed in a future release. |
+---------+------+---------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0,00 sec)
mysql> create index nameindex on billing(user_id);
Query OK, 0 rows affected, 1 warning (0,01 sec)
Records: 0 Duplicates: 0 Warnings: 1
mysql> show warnings;
+---------+------+---------------------------------------------------------------------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+---------------------------------------------------------------------------------------------------------------------------------+
| Warning | 1831 | Duplicate index 'nameindex' defined on the table 'test.billing'. This is deprecated and will be disallowed in a future release. |
+---------+------+---------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0,00 sec)
|