|
|
|
как правильно проиндексировать таблицу
|
|||
|---|---|---|---|
|
#18+
доброе время суток мне необходимо проиндексировать таблицу. она имеет приблизительно такой вид: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. как вы уже наверняка поняли это таблица тегов и характеристик неких товаров. таких товаров больше 10 миллионов и на один товар может быть в среднем в районе 10 тегов они образуються путем деления полного названия товара на [^a-z0-9]. остальные столбцы кроме `item_id` это характеристики товаров. существует поиск который дает возможность пользователю выбирать любые характеристики и в любой спайке друг с другом, т.е. пользователь может указать что ему нужны товары например только с каким-то определенным `manufacturer_id` или с определенным `speed`, или с определенными `speed` и `manufacturer_id`, или вообще указать определенный параметр для каждой характеристики в том числе еще и указать какой-нибудь `tag`. поэтому вопрос - как правильно тут проставить индексы? каждому полю отдельно или создать какой-то общий индекс для всех полей? и это учитывая то что сама по себе таблица будет содержать десятки миллионов строк! заранее благодарен за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.01.2016, 21:38:58 |
|
||
|
как правильно проиндексировать таблицу
|
|||
|---|---|---|---|
|
#18+
Я сомневаюсь, что структура соответствует предметной области и решаемым задачам. А если так - то какая нафиг разница, какие индексы ляпать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.01.2016, 21:45:05 |
|
||
|
как правильно проиндексировать таблицу
|
|||
|---|---|---|---|
|
#18+
Akina, разница большая... от этого зависит скорость выполнения запросов!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.01.2016, 21:55:37 |
|
||
|
как правильно проиндексировать таблицу
|
|||
|---|---|---|---|
|
#18+
Yegor Zhdanov Код: sql 1. 2. 3. Разве можно делать одинаковые поля в одной таблице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.01.2016, 22:03:31 |
|
||
|
как правильно проиндексировать таблицу
|
|||
|---|---|---|---|
|
#18+
Yegor Zhdanovот этого зависит скорость выполнения запросов!!!Каких именно запросов? Индексы создаются для запросов. И для разных запросов могут быть нужны разные индексы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.01.2016, 22:05:00 |
|
||
|
как правильно проиндексировать таблицу
|
|||
|---|---|---|---|
|
#18+
Yegor Zhdanovразница большая... от этого зависит скорость выполнения запросов!!! А кривой структуре полпроцента - счастье, да только не всегда возможно. А изменение структуры до правильной само по себе может дать разы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.01.2016, 22:42:59 |
|
||
|
как правильно проиндексировать таблицу
|
|||
|---|---|---|---|
|
#18+
miksoft, запоросы поисковые - т.е. 99% в основном select (в запросе возможны выражения типа group by ... HAVING count(*)= ...). ну и само собой разумеется что insert и update по ключу item_id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.01.2016, 22:47:22 |
|
||
|
как правильно проиндексировать таблицу
|
|||
|---|---|---|---|
|
#18+
miksoftYegor Zhdanov Код: sql 1. 2. 3. Разве можно делать одинаковые поля в одной таблице? там запятые через раз стоят. это нерабочий скрипт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.01.2016, 22:48:48 |
|
||
|
как правильно проиндексировать таблицу
|
|||
|---|---|---|---|
|
#18+
Yegor Zhdanovmiksoft, запоросы поисковые - т.е. 99% в основном select (в запросе возможны выражения типа group by ... HAVING count(*)= ...). ну и само собой разумеется что insert и update по ключу item_id.Не-не-не. Либо мы обсуждаем конкретный и точный запрос, либо наши теоретизирования имеют нулевую ценность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.01.2016, 23:29:34 |
|
||
|
как правильно проиндексировать таблицу
|
|||
|---|---|---|---|
|
#18+
miksoft, так а каже мне быть тогда?... подскажите тогда каким образом можно реструктуризировать такую таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2016, 00:37:59 |
|
||
|
как правильно проиндексировать таблицу
|
|||
|---|---|---|---|
|
#18+
Yegor Zhdanovтак а каже мне быть тогда?Показывайте точный конкретный запрос. Yegor Zhdanovподскажите тогда каким образом можно реструктуризировать такую таблицу?Не подскажу. Я не вижу смысла в этой таблице. Как минимум, потому, что не знаю о какой предметной области речь и для чего эта таблица. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2016, 01:39:57 |
|
||
|
как правильно проиндексировать таблицу
|
|||
|---|---|---|---|
|
#18+
Yegor Zhdanov, судя по наим.полей, вы привели структуру таблицы для "жестких дисков". У вас под каждый тип товара своя таблица? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2016, 14:17:41 |
|
||
|
как правильно проиндексировать таблицу
|
|||
|---|---|---|---|
|
#18+
Индексируй поля которые чаще участвуют в условиях select в разделе where, а так же поля которые участвуют в операторах соединения inner join. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2016, 16:43:10 |
|
||
|
как правильно проиндексировать таблицу
|
|||
|---|---|---|---|
|
#18+
miksoftYegor Zhdanovmiksoft, запоросы поисковые - т.е. 99% в основном select (в запросе возможны выражения типа group by ... HAVING count(*)= ...). ну и само собой разумеется что insert и update по ключу item_id.Не-не-не. Либо мы обсуждаем конкретный и точный запрос, либо наши теоретизирования имеют нулевую ценность. абсолютно правильное заявление. но я хочу сразу сказать, что скорее всего - увы - автор топика не сможет решить сам или с нашей помощью данную задачу - кишка тонка, т. е. уровень понимания проблем на порядки ниже, чем требуется для решения задачи. А задача очень трудная. Именно потому, что надо оптимизировать заранее неизвестные запросы, что в общем случае невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2016, 08:03:43 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39141305&tid=1832316]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
189ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 528ms |

| 0 / 0 |
