CMS для потрала с нагрузкой

lutskboy
На сайте с 22.11.2013
Offline
192
#61
я когда делал скрипт комментов и заметил что по первичному ключу id, запрос выполнялся медленнее чем по индексу varchar в котором было толи число толи хеш какой то 8-10символов 😀
Snake800
На сайте с 02.02.2011
Offline
236
#62
Основная проблема строковых и uuid индексов в их фрагментации (непоследовательности ) - статейка. Много раз попадались на глаза советы делать числовые PK, но не видел годных тестов по замерам производительности. То есть насколько именно это критично. В идеале для теста надо сделать несколько разных, но схожих по составу таблиц с последовательным int, рандомным int и рандомной строкой в качестве ПК. Ну и uuid до кучи - последовательный и непоследовательный. Для чистоты теста можно сохранить "эталонную" таблицу со всеми значениями во всех тестовых таблицах и последовательно выбрать все эти миллионы записей и замерить время. Потом можно кластеризировать (упорядочить) индексы замерить ещё раз. Может получиться нормальная статья на свой сайт или для хабра.
Почему PostgreSQL тормозит: индексы и корреляция данных
Почему PostgreSQL тормозит: индексы и корреляция данных
  • 2021.07.06
  • habr.com
"Хочешь ускорить запросы, построй индекс" – классический первый шаг по увеличению производительности в PostgreSQL. Вот только на практике можно встретить ситуацию, когда индексы в PostgreSQL есть, но тормоза никуда не делись. Не все индексы являются эффективными. Одна из возможных причин тормозов индексов – это отсутствие корреляции данных...
htexture
На сайте с 29.05.2017
Offline
224
#63
Aisamiery #:

Там если и будет разница, то фактически нивелироваться железом, вот табличка на 1.5kk записей


И в ней 3 индекса, 1 праймари и 2 составных (один чисто числовой, второй имеет строку) и собственно вот запросы

По праймари кею


По первому составному из 2х чисел

И из 2х чисел со строкой

В общем тут на уровне погрешности разница между ними и это вполне логично

А что это за программа или вебморда на скринах?
LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#64
htexture #:
А что это за программа или вебморда на скринах?

Это битрикс админка, где можно выполнять SQL запросы.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Aisamiery
На сайте с 12.04.2015
Offline
319
#65
htexture #:
А что это за программа или вебморда на скринах?

Админка битрикса

Snake800 #:
Основная проблема строковых и uuid индексов в их фрагментации (непоследовательности ) - статейка

Я прочитал по диагонали, но мне кажется там проблема в том что транзакции включают инсерты и конечно даже 5к транзакций в секунду это достаточно большая нагрузка на машинку в 8Гб и 4 ядра. Тут люди про сайты на DLE втирают что им ID числовой в урле даст какой то буст производительности =))

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
Snake800
На сайте с 02.02.2011
Offline
236
#66
Aisamiery #:
Я прочитал по диагонали, но мне кажется там проблема в том что транзакции включают инсерты

Ага. А вот тестов по селектам с имитацией рабочей нагрузки в поиске не видать.

И, еще имхо, коль скоро мы говорим за фактический хайлоад, надо смотреть (тестировать) не только производительность PK, а еще скорость неуникальных индексов для отбора и джойна а-ля category_id, которые априори идут вразброс.

Ищё и от сервера зависит mssql, postgres и mysql могут вести себя по разному.

C
На сайте с 22.08.2012
Offline
117
#67
Владимир #:
вот вот, а у строк размер гораздо больше, у вас светлая голова

Размер строк для хранения ключа не имеет никакого значения. Он влияет только на скорость выполнения хеш-функции.
Сами хеши строк всегда одного размера (иначе не удастся обращаться к ним по указателю). Размер этих хешей обычно больше числового, то есть в одной ноде можно поместить больше ключей.
Кроме того сравнение чисел более дешёвая операция чем сравнение строк.

По большому счёту это все преимущества числовых индексов.

То есть выиграли на работе хеш функции (1) , размере массива в ноде (2) , сравнении/сортировке(3). Много или мало? 99,(9)% пользователей этого форума разницы ни на одном проекте не заметят.

W1
На сайте с 22.01.2021
Offline
306
#68
Snake800 #:
надо смотреть (тестировать) не только производительность PK, а еще скорость неуникальных индексов для отбора и джойна а-ля category_id

Нет, не надо. Тут идёт дискуссия касательно выборки из БД данных одной-единственной статьи.

Мой форум - https://webinfo.guru –Там я всегда на связи
Aisamiery
На сайте с 12.04.2015
Offline
319
#69
Snake800 #:
И, еще имхо, коль скоро мы говорим за фактический хайлоад, надо смотреть (тестировать) не только производительность PK

Давайте тут уж по честному, если вы уперлись в производительность индексов (если мы подразумеваем что они используются корректно), то мне кажется тут пора писать своё хранилище, а весь проект уже давно на расте или си переписан =))

PS. И сколько смотрел докладов по хайлоаду, ни одна из топовых компаний не поднимала вопрос о том, в каком формате должен быть праймари кей и если с такой проблемой не столкнулись гиганты типа озона, авито и прочие ребята, то уж думаю местные владельцы проектов уж тем более в жизни не столкнутся чтоб задумываться об этом =)) 

C
На сайте с 22.08.2012
Offline
117
#70
Aisamiery #:

Давайте тут уж по честному, если вы уперлись в производительность индексов (если мы подразумеваем что они используются корректно), то мне кажется тут пора писать своё хранилище, а весь проект уже давно на расте или си переписан =))

s Ещё надо убедиться, что все демоны переведены с tcp- на unix- сокеты /s

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий