|
|
|
Количество записей в таблице влияет на скорость
|
|||
|---|---|---|---|
|
#18+
Добрый день. У меня такая проблема - есть очень громоздкая PHP-функция расчёта статистики по займам. Там на столько сложный алгоритм, что этот скрипт не может выполниться за раз, и пришлось для него написать кэш. Сейчас в таблице с кэшем 179579 записей и скрипт выборки из кэша почему-то работает медленно. Как только я эту таблицу очищаю, всё начинает работать гораздо быстрее. Почему такое может происходить? Дамп структуры таблицы выглядит так: Код: 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. 32. Сама выборка выглядит довольно простецки: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2016, 17:25 |
|
||
|
Количество записей в таблице влияет на скорость
|
|||
|---|---|---|---|
|
#18+
Freakmeister, так индексы-то где? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2016, 17:28 |
|
||
|
Количество записей в таблице влияет на скорость
|
|||
|---|---|---|---|
|
#18+
Freakmeister, Покажите результат SHOW CREATE TABLE `wp_loans_stats` И, да, индекса по полю loan_id (или начинающегося с этого поля) не хватает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2016, 17:44 |
|
||
|
Количество записей в таблице влияет на скорость
|
|||
|---|---|---|---|
|
#18+
Melkij, индекс стоит на id, разве этого не достаточно? Я подумал что в loan_id он не нужен, потому что там встречаются не уникальные значения. Где про это почитать?) miksoft, вот: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2016, 17:00 |
|
||
|
Количество записей в таблице влияет на скорость
|
|||
|---|---|---|---|
|
#18+
Всё, нашёл где почитать: http://www.mysql.ru/docs/man/MySQL_indexes.html Прошу прощения за глупые вопросы, я не опытный кодер.) Надо будет ещё про "первичный" ключ почитать, надеюсь я его в остальных таблицах правильно расставил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2016, 17:14 |
|
||
|
Количество записей в таблице влияет на скорость
|
|||
|---|---|---|---|
|
#18+
А нафига тебе ДВА индекса по полю id? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2016, 19:42 |
|
||
|
Количество записей в таблице влияет на скорость
|
|||
|---|---|---|---|
|
#18+
Akina, в смысле? Я через phpMyAdmin базу создавал, у меня на поле id висит "первичный" и "индекс". Так делать не правильно? http://dl2.joxi.net/drive/2016/10/18/0001/2051/108547/47/0a79b3b965.png ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2016, 20:37 |
|
||
|
Количество записей в таблице влияет на скорость
|
|||
|---|---|---|---|
|
#18+
Freakmeister, PRIMARY KEY (`id`), KEY `id` (`id`) означает, что у вас два индекса по одному полю. Представь, что таблица это книга, а индекс - алфавитный указатель. Имеет ли смысл печатать в конце книги 2 алфавитных указателя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2016, 21:28 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39328434&tid=1831309]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
161ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 446ms |

| 0 / 0 |
