![]() |
|
Модераторы: skyboy |
![]()
|
|
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 5 Всего: 315 |
тяжело копаться в нюансах аглицкой документации, потому небольшой блиц:
1. первичный индекс (primary key) один на таблицу? 2. он обязательно должен присутствовать в таблице? 3. можно ли его назначать на нечисловые типы полей? 4. авто инкремент можно назначить только числовому полю с первичным индексом? 5. полю типа float можно назначить авто инкремент? 6. индексы можно назначать нескольким полям? 7. групповые индексы не имеют ограничений? 8. первичный индекс не может быть групповым? спасибо |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
1. Да.
2. не обязательно, но его использование, кроме ускорения выполнения соответствующих запросов, упрощают работу front-end'a(мелочь, в принципе). 3. да. но для всяких varchar и прочих с переменной длиной надо указывать длину, которая будет индексироваться(соответственно, остаток индексироваться не будет) 4. да. 5. нет. но можно эмулировать через триггер. 6. есть сложный индекс - один индекс по нескольким полям. или можно сделать несколько разных индексов на разные наборы полей. как угодно. 7. есть, но косвенные. к примеру, если по конфигурации сервера, индекс не будет умещаться целиком(может, "целиком" и необязательно) в дозволенный объем памяти, то не будет использоваться в запросах. 8. в смысле, составным? вполне может. странно, что ты сам не попробовал. разве это долго? |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 5 Всего: 315 |
||||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 5 Всего: 315 |
вы выиграли суперблиц
1. имеется ввиду char, varchar, и все text? а date, time, timestamp? 2. для них обязательно указывать длину? 3. можно ли для других полей (int, float) указывать длину? 4. какие пределы этой длины? |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
ориентируясь на ман:
1, 2. для char, varchar, binary и varbinary полей длина может быть указана. Для включения в индекс text/blob полей длину указывать обязательно. для 5 ветки не актуально(индекс создается автоматически), а вот для более ранних, индексирование varchar/varbinary без указания длины может повлияет на производительность вставки/изменения/удаления - действия, напрямую связанных с перестройкой индекса. time, date, timestamp - суть int поля, со специфической обработкой. нет, для них не надо указывать длину. 3. нет. а зачем? 4. зависят от storage engine. как указано в мане, для myisam - 1000 байт, для innodb - 767. обращаю внимание, что длина трактуется, как указанная в символах(для полей кроме blob/binary/varbinary), а, значит, 501 символ для индекса по полю в кодировке utf8 - может быть уже слишком много для myisam. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 5 Всего: 315 |
лады
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |