|
|
|
Жудко тормозит БД. Что делать?
|
|||
|---|---|---|---|
|
#18+
Дам приложен. Запрос вот такой: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. В t_s около 350.000 записей, в ts и tn примерно по 25.000. Один запрос полминуты выполняется. По-началу всё было шустро, но после 200.000 записей в t_s я заметил это торможение, а ведь в t_s предполагаются сотни миллионов записей и что тогда будет? Помогите, пожалуйста, советом и объясните, почему так происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2014, 12:02:07 |
|
||
|
Жудко тормозит БД. Что делать?
|
|||
|---|---|---|---|
|
#18+
Рассказывайте подробно логику этого запроса. Заодно покажите его план. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2014, 23:36:44 |
|
||
|
Жудко тормозит БД. Что делать?
|
|||
|---|---|---|---|
|
#18+
$_SQL_stroka_dlya_podbora — опорные слова для поиска. $kolichestvo_opornyx_slov — количество опорных слов. ts — таблица слов (перечислены уникальные слова, из которых мы будем делать подбор). tn — таблица наборов (здесь просто номера наборов. Набор — это несколько слов, связанных с одним номером набора. В жизни это ключевые слова для одной картинки, например). t_s — таблица связей (здесь прописаны связи между номерами слов и номерами наборов). Запрос делает следующее: — ищет в бд все наборы, в которых есть сразу все опорные слова; — из найденых наборов выбирает все остальные слова этих наборов; — сортирует все полученые слова по количеству встречания в наборах, а с одинаковым количеством встречания — по алфавиту; — выдаёт первые 200 слов с наибольшим количеством встречания в наборах; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2014, 11:18:21 |
|
||
|
Жудко тормозит БД. Что делать?
|
|||
|---|---|---|---|
|
#18+
Я не понимаю про план. Как его показать, что вы имеете ввиду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2014, 12:34:10 |
|
||
|
Жудко тормозит БД. Что делать?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2014, 12:35:30 |
|
||
|
Жудко тормозит БД. Что делать?
|
|||
|---|---|---|---|
|
#18+
Сделал это: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Получил то, что приложено картинкой. Кстати, поиск по слову «фон» около двух минут уже… Это слово очень часто встречается в наборах (>4000). Я заметил, что чем чаще встречается слово в наборах, тем дольше выполняется запрос. Если со словом «фон» поискать ещё слова, например «фон, природа», то запрос становится несколько быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2014, 12:48:33 |
|
||
|
Жудко тормозит БД. Что делать?
|
|||
|---|---|---|---|
|
#18+
Вот такой был запрос, ранее просто не всё скопировал: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2014, 14:36:49 |
|
||
|
Жудко тормозит БД. Что делать?
|
|||
|---|---|---|---|
|
#18+
andrejk, 1. можно заменить примари кей в таблиц TS слов с номера на само слово. Тогда в таблице связок T_S будет слово в явном виде. 2. на связочной таблице T_S сделайте два составных индекса (слово, ид_набора) и (ид_набора, слово). Если не сделаете пункт #1, то (ид_слово, ид_набора) и (ид_набора, ид_слово). 3. какая версия мускл у вас? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2014, 03:07:02 |
|
||
|
Жудко тормозит БД. Что делать?
|
|||
|---|---|---|---|
|
#18+
javajdbcТогда в таблице связок T_S будет слово в явном виде.а что это даст, кроме раздувания индекса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2014, 06:43:16 |
|
||
|
Жудко тормозит БД. Что делать?
|
|||
|---|---|---|---|
|
#18+
tanglirjavajdbcТогда в таблице связок T_S будет слово в явном виде.а что это даст, кроме раздувания индекса? Раздувание индекса -- ну в разы, если прикинуть до 100.000 связок, то это 5 циферек автоинкремент против варчарный индекс 6-7 длиною. С другой стороны не нужно будет джойнить на таблицу слов вообще !! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2014, 15:15:51 |
|
||
|
Жудко тормозит БД. Что делать?
|
|||
|---|---|---|---|
|
#18+
Спасибо за помощь, добавил индексы в t_s и всё стало шустрее, но всё равно есть потенциальное медленное место, которое пока не проявилось, но с ростом количества записей проявится. Я ещё задам этот вопрос) А пока подскажите, пожалуйста, как ускорить запрос с регулярыми выражениями. Здесь индексы не помогут? ведь всё равно проверять всё придйтся. Запрос вот такой: Код: sql 1. 2. 3. 4. Т. е. выбираем только наборы с кирилицей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2014, 18:40:44 |
|
||
|
Жудко тормозит БД. Что делать?
|
|||
|---|---|---|---|
|
#18+
Я, конечно, сделаю две разные таблицы для кирилицы и латиницы, но, всё-таки, для общего развития: интересно, как ускорить запрос с регулярками? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2014, 18:46:24 |
|
||
|
Жудко тормозит БД. Что делать?
|
|||
|---|---|---|---|
|
#18+
andrejk, если регулярка ТОЛЬКО для определинеия кирилица или нет, то проше на каждое слово заранее повесить флажок (1/0 кирилица или нет). А если всерьез занятся денормализацией, то этот флажок (можно попробовать) закинуть в таблицу связок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2014, 19:01:23 |
|
||
|
Жудко тормозит БД. Что делать?
|
|||
|---|---|---|---|
|
#18+
Не буду новую тему создавать, но подскажите, есть ли запрос, чтобы получить только структуру БД без данных? Хочу просмотреть созданные индексы, а то уже забыл, что и где создавал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2014, 00:19:57 |
|
||
|
Жудко тормозит БД. Что делать?
|
|||
|---|---|---|---|
|
#18+
andrejkНе буду новую тему создавать, но подскажите, есть ли запрос, чтобы получить только структуру БД без данных? Хочу просмотреть созданные индексы, а то уже забыл, что и где создавал.SHOW CREATE TABLE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2014, 00:22:46 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=161&tid=1834161]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 325ms |

| 0 / 0 |
