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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

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

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

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
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

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

Оффлайн thunderamur

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

Оффлайн aSmile

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

Оффлайн thunderamur

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

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
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~$

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

Оффлайн EvangelionDeath

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

"time_idx" btree ("time") - в таблице более 100 млн записей
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
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 »
Wars ~.o

 

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