Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: MySQL - медленная выборка  (Прочитано 404 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6748
  • Ubuntu 16.04
    • Просмотр профиля
MySQL - медленная выборка
« : 30 Июль 2016, 14:58:23 »
БД 10-20 ГБ, несколько сотен миллионов строк, медленно работает выборка по timestamp, а по id с удовлетворительной скоростью. Как сделать быструю выборку по timestamp?

id                timestamp                 data1    data2
----------------------------------------------------------------
187133702         2016-07-29 22:24:09       3457     122.1
187133701         2016-07-29 22:24:09       3441     335.833
187133700         2016-07-29 22:24:09       3440     469.656
187133699         2016-07-29 22:24:09       3439     6.1493
187133698         2016-07-29 22:24:09       3435     0.536499
187133697         2016-07-29 22:24:09       3432     8.32513
187133696         2016-07-29 22:24:09       3431     14.8086
187133695         2016-07-29 22:24:09       3428     0.961305
187133694         2016-07-29 22:24:09       3426     139.626

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 716
    • Просмотр профиля
Re: MySQL - медленная выборка
« Ответ #1 : 30 Июль 2016, 22:27:48 »
Сделать индекс по этому полю?

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6748
  • Ubuntu 16.04
    • Просмотр профиля
Re: MySQL - медленная выборка
« Ответ #2 : 31 Июль 2016, 09:04:30 »
aSmile, а индекс не должен быть уникальным?

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 716
    • Просмотр профиля

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6748
  • Ubuntu 16.04
    • Просмотр профиля
Re: MySQL - медленная выборка
« Ответ #4 : 31 Июль 2016, 10:25:06 »
aSmile, спасибо.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 14927
  • Я не слышу.
    • Просмотр профиля
Re: MySQL - медленная выборка
« Ответ #5 : 31 Июль 2016, 10:32:40 »
индекс внутри нету, права текст дата и этот.
пример.
1:L~$ echo "AAA 1" | nc 127.0.0.1 123457
nc: port number too large: 123457
1:L~$
1:L~$
1:L~$
1:L~$ echo "AAA 1" | nc 127.0.0.1 12347
1
1:L~$ echo "AAA 1" | nc 127.0.0.1 12347
2
1:L~$ echo "AAA 1" | nc 127.0.0.1 12347
3
1:L~$ echo "BBB 1" | nc 127.0.0.1 12347
1
1:L~$ echo "BBB 1" | nc 127.0.0.1 12347
2
1:L~$ echo "BBB 1" | nc 127.0.0.1 12347
3
1:L~$ echo "BBB 1" | nc 127.0.0.1 12347
4
1:L~$ echo "AAA 1" | nc 127.0.0.1 12347
4
1:L~$ echo "BBB 1" | nc 127.0.0.1 12347
5
1:L~$ echo "BBB 1" | nc 127.0.0.1 12347
6
1:L~$ echo "BBB 1" | nc 127.0.0.1 12347
7
1:L~$ echo "AAA 1" | nc 127.0.0.1 12347
5
1:L~$

вывод это индекс.
~.o

Онлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3113
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: MySQL - медленная выборка
« Ответ #6 : 31 Июль 2016, 10:50:38 »
thunderamur, мы используем Postgres. Допускается использование составных ключей.
А для времени используем

"time_idx" btree ("time") - в таблице более 100 млн записей
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 14927
  • Я не слышу.
    • Просмотр профиля
Re: MySQL - медленная выборка
« Ответ #7 : 31 Июль 2016, 11:11:25 »
187133702         2016-07-29 22:24:09       3457     122.1
что 122.1 это сайт h++p://../index.php?post=122.1
а мусял читать только найти 122.1 и готов дать индекс,
конечно долго, если хуже найти медленно.
надо удалить старый даты, что бы меньше.


Пользователь добавил сообщение 31 Июль 2016, 11:48:39:
лучше индекс
h++p://.../index.php?post=187133702
очень быстро, но оно ненравиться цифры.
« Последнее редактирование: 31 Июль 2016, 11:48:39 от victor00000 »
~.o

 

Страница сгенерирована за 0.057 секунд. Запросов: 24.