The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Оценка изменения производительности СУБД PostgreSQL за последние 15 лет

22.04.2024 11:42

Райан Маркус (Ryan Marcus), разработчик экспериментального оптимизатора Bao для PostgreSQL, в котором используется машинное обучение для оптимизации выполнения запросов, опубликовал результаты тестирования производительности штатного оптимизатора запросов PostgreSQL. Тестирование охватывало ветки PostgreSQL, начиная с 8.4 (2009 год) и заканчивая 16 (2023 год). Производительность измерялась при помощи коллекции JOB (join order benchmark), включающей более 100 сложных запросов с большим числом операций JOIN, нацеленных на проверку различных аспектов работы оптимизатора запросов.

По сравнению с версией PostgreSQL 8.4 скорость выполнения тестовых запросов в PostgreSQL 16 возросла почти в два раза. Каждая новая значительная версия PostgreSQL в среднем быстрее предыдущей на 15% при выполнении тестов JOB.

  1. Главная ссылка к новости (https://rmarcus.info/blog/2024...)
  2. OpenNews: Сравнение производительности различных RAID при работе PostgreSQL
  3. OpenNews: Для PostgreSQL представлен движок хранения OrioleDB, обходящийся без операции VACUUM
  4. OpenNews: В CVE опубликованы отчёты о ложных уязвимостях в curl, PostgreSQL и других проектах
  5. OpenNews: Рейтинг популярности СУБД. PostgreSQL назван СУБД 2023 года
  6. OpenNews: Релиз СУБД PostgreSQL 16
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/61042-postgresql
Ключевые слова: postgresql, benchmark
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (29) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:53, 22/04/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Получается 13-я самая быстрая?
     
     
  • 2.4, Аноним (4), 12:01, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    На графике только 90-й персентиль, если по нему судить то да. Но чтобы полноценно ответить надо более комплексно смотреть.
     
  • 2.12, нах. (?), 14:37, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    в ней самый быстрый query optimizer (в общем-то было бы странно если бы с годами он становился только заметно хуже... хотя "успех" между 8 и 11 впечатляет)

    Тест - синтетический, на крошечной базе целиком в памяти.

    Чего оно там на самом деле тестировало - дальше разбираться незачем, поскольку если у вас производительность уперлась в query optimizer - просто оптимизируйте ручками, а не надейтесь на магию с неестественным интеллектом.

     
     
  • 3.15, Аноним (15), 15:10, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Завезите полноценные хинты в постгрес, будем оптимизировать ручками.

    Вообще было бы неплохо иметь более низкоуровневое api, передавая постгресу напрямую план выполнения запроса. Можно даже без SQL, прямо сериализованную внутрянку. Жёстко оптимизированные запросы нужны редко, но когда нужны - это было бы намного удобнее, чем воевать с искусственным идиотом.

    Для мыскля была попытка сделать (простейшее, по одной таблице) подобие в виде handlersocket, но не прижилось.

     
     
  • 4.17, 1 (??), 15:58, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Что-то там делали ребята с postgrespro в виде расширений. И чё-то я пробовал от них лет 5 назад.
    Думаю, если сформулируете хотелки - они вам помогут.
    Ну или не помогут, если разжирели на госзаказах.
     
     
  • 5.20, Аноним (15), 18:12, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В EnterpriseDB хинты есть и вполне ок. А у разработчиков Postgres принципиальная позиция не делать.

    Расширением тут не обойдешься, нужно патчить.

     
  • 4.21, Аноним (21), 18:30, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так файловый ввод-вывод и используй. Чё ты.
     
  • 4.27, Аноним (27), 05:42, 23/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А как в MySQL передать "сериализованную внутрянку" ?
    Такое впеяатление что раньше видел что-то подобное, но нагуглить не получается.
     
     
  • 5.28, Аноним (15), 10:06, 23/04/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не, прямо такого там нет. handlersocket был робкой попыткой, так сказать, первый подход к снаряду - "пройдись по такой табличке вот по этому индексу". Простейший tab separated протокол. Отдельный интерфейс напрямую к Innodb, в обход всего mysql-я по сути.

    Можно было бы это развивать, добавив мультитабличность, ручное указание способов join-ов и т.п., но вместо этого оно сдохло.

    Но даже в таком простейшем виде оно уже было очень полезно и позволяло очень шустро ходить по индексам, годилось для частых операций типа "найти юзера по ID/емейлу", работало достаточно шустро, чтобы отказаться от key value-баз сбоку. Году этак в 2011-м я так на одном mysql так строил хайлоад - шардинг по диапазонам userid + центральная база (master+slaves, shard allocation mapping + user db) на handlersocket.

     
     
  • 6.30, Аноним (27), 22:47, 23/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А вы могли бы дать пример select ?

    Я помню что пользовался одним примером, сильно ускоряя подсчет статистики ресторана под Друпал,
    там было что-то "0x10..0xff", работало без плагинов, на mysql+galera, в те же годы.

     
  • 4.29, ptr (ok), 11:34, 23/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Завезите полноценные хинты в постгрес, будем оптимизировать ручками.

    А без этого религия не позволяет? Или просто лень?

     
  • 4.31, Аноним (31), 23:32, 23/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Для любой sql БД желание валидно. В какой-то момент роста, возникают проблемы, что штатный планировщик говно собачек и только больше проблем доставляет
     
  • 3.22, fuggy (ok), 18:35, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На какой ещё базе замерять скорость query optimizer если не на синтетической базе в памяти.
     

  • 1.2, Аноним (2), 11:57, 22/04/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Какие приемущества этого голыша от Postgres Pro Standard?
     
     
  • 2.3, Аноним (2), 11:59, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    https://postgrespro.ru/docs/postgrespro/16/intro-pgpro-vs-pg
     

  • 1.5, Аноним (5), 12:14, 22/04/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Оси он тоже менял или все на последнем линуксе?
     
     
  • 2.6, AleksK (ok), 12:28, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну да и железо ставил соответсвующее каждой версии. Очевидно же что тестовая машина одна, иначе какой смысл в этих тестах.
     
     
  • 3.7, Аноним (7), 13:35, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • +5 +/
    (например) Фороникса это никогда не смущало, что меня всегда радовало в его сравнительных тестах теплого и мягкого.
     
     
  • 4.10, AleksK (ok), 13:50, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что-то не припомню такого у фороникса. Он если и сравнивал разные дистрибутивы то это был тест на сравнение дистрибутивов.
     
  • 2.8, Аноним (7), 13:45, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    все гораздо хуже - он их крутил в виртуалке:
    "inside a Docker container with Arch Linux."

    был ли хост с гипервизором в горячем\холодном положении - никто не знает, как и чем еще была занята его машина в это время.

     
     
  • 3.9, ыы (?), 13:49, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в статье есть файлик с сырыми данными. проведите анализ. покажите что девиации не системны. сможете?
     
  • 3.11, Аноним (11), 14:32, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > в виртуалке
    > Docker

    Вин-админ?

     
  • 2.13, нах. (?), 14:39, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    написано что все на последнем раче с наираспоследним компилятором (как ему удалось при этом собрать древние версии - не написано. Ну давайте предположим что они собираются. Мало ли, бывает чудес.)

    Там собака в другом порылась - мастер заголовков опеннета в очередной раз поздравляем соврамши. Тестировалась не производительность посгреза. И вот все об этом человеке.

     
     
  • 3.16, 1 (??), 15:56, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну в общем-то да, заголовок желтушный. Товарисч, решил проверить работу штатного планировщика на разных версиях ( я думаю, чтобы показать, что его планировщик с ИИ рвёт их все как тузик грелку ...).
    К успеху шёл - не прокатило. Пришлось просто табличку по версиям публиковать.
     
     
  • 4.23, Wayland на Xorg (?), 19:29, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Чё в итоге то 0.0.0-v12 ?
     

  • 1.14, Аноним (14), 15:05, 22/04/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну это не единственный критерий выбора БД. Что-то же было сделано после 13 версии?
     
  • 1.19, Аноним (19), 17:46, 22/04/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    На каком железе тестили?
    Просто там же ssd появилось и оптимизатор скорее всего менялся от hdd до ssd.
     
     
  • 2.24, ss (??), 20:55, 22/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    там же написано - вся база в памяти...
     

  • 1.25, S22 (?), 21:31, 22/04/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ado у postgresql pro
    Другой движек запрсов
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру