|
|
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. на что MySQL отвечает Код: plaintext Есть индекс UNIQUE INDEX IX_unique_key (unique_key) Как я понимаю, он хочет чтобы поле id было добавлено в этот индекс? Тогда смысл этого индекса потеряется, как я понимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 13:25 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
Hett, create table попробуй ТОЖЕ опубликовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 14:20 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
Да вот Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 14:43 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
HettТогда смысл этого индекса потеряется, как я понимаю.А его и сейчас нет, по большому счёту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 15:51 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
AkinaHettТогда смысл этого индекса потеряется, как я понимаю.А его и сейчас нет, по большому счёту. Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 17:39 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
Существование ДВУХ независимых, и в то же время уникальных, индексов - зачем? чтобы связывать не по текстовому полю, а по чисельному? ну вроде логика просматривается... Вообще ситуация достаточно подробно рассмотрена в документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 18:22 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
unique_key необходим как завуалированный идентификатор, чтобы пользователи не страдали фигней подставляя разные айдишники (которые в случае с перечислимым типом легко узнать какие были недавно). С другой стороны в ссылках из других таблиц хранить 13 байтные поля накладно, поэтому используется INT, хотя может это и лишнее, но вот как-то так. Вопрос в общем-то не в этом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 19:09 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
Ну так решение очевидно - замените UNIQUE INDEX IX_unique_key (unique_key) на UNIQUE INDEX IX_unique_key (unique_key, id). Ну да, индекс станет чутка пухлее. Зато партиционирование не вызовет проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 21:04 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
А какой смысл в таком ключе, если они 100% никогда не выявит коллизий? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2013, 06:22 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
Или я чего-то не понимаю, или в случае с партиционированием проверки уникальности на стороне СУБД не добиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2013, 06:23 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
Ты хочешь на один ключ возложить две функции. И партишить по нему. и проверять уникальность по нему же. А он не справляется. Посему - индекс по (unique_key) для проверки уникальности, а по (unique_key, id) - для партиционирования. Каждый занимается своим делом, все счастливы. А что расход дискового пространства и времени при изменении - ну уж это неизбежная плата за желание обеспечить этот функционал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2013, 10:34 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
HettА какой смысл в таком ключе, если они 100% никогда не выявит коллизий? Hett, подумай хорошенько, как MySQL будет проверять уникальность этого поля? Как это сделать ? Партицирование -- это по сути N независимых таблиц, напр. 100. Если у тебя есть ключ партицирования в UNIQUE -- всё ок, по ключу партицирования ищется нужная партиция, и записи с этим значением UNIQUE должны быть гарантированно в ней, тогда по оставшейся части можно спозиционироваться в индексе и найти или не найти запись. Если ключа партицирования нет, то нужно искать запись в N партициях по отдельности, а это в N раз дольше. Т.е. в данном случае у тебя поиск замедлился бы в 100 раз! Если ещё принять во внимание то, что для какого-то эффекта ускорения работы партиций должно быть много, несколько сот или тысяч, то вот на эти два или три порядка ты бы получал замедление работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2013, 19:23 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
Да я в общем-то так и думал. Просто одного не мог понять, как такой ключ будет работать в этом случае. Как я понимаю тогда нужно делать его по (id, unique_key) а не наоборот? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2013, 19:41 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
HettКак я понимаю тогда нужно делать его по (id, unique_key) а не наоборот?А какая разница? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2013, 20:52 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
AkinaHettКак я понимаю тогда нужно делать его по (id, unique_key) а не наоборот?А какая разница? Разница только в том, какая колонка будет ведущей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2013, 21:02 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
Не понял термина. Что есть "ведущая колонка"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2013, 21:02 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
AkinaНе понял термина. Что есть "ведущая колонка"? Первая. Напоминаю, что по префиксам искать можно, а по суффиксам — нет. Поэтому не все равно, как ставить колонки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 01:19 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
Так все же, нужен ключ (id, unique_key) и он будет работать для проверки на уникальность и поиска по unique_key ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 08:21 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
HettТак все же, нужен ключ (id, unique_key) и он будет работать для проверки на уникальность и поиска по unique_key ?Нет. Akinaиндекс по (unique_key) для проверки уникальности, а по (unique_key, id) - для партиционирования.(unique_key, id) будет использоваться также для связывания/отбора/сортировки по unique_key. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 08:40 |
|
||
|
партиционирование
|
|||
|---|---|---|---|
|
#18+
Прошло 3 года. Я так и не понял сути всех рекомендаций добавления второго поля в уникальный ключ. Уникальность ключа теряется. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2016, 10:16 |
|
||
|
|

start [/forum/search_topic.php?author=LavaL&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
152ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 719ms |
| total: | 946ms |

| 0 / 0 |
