RU

Индекс как алфавитный указатель: как база ищет и почему иногда не находит

В первой статье я объяснял кэш через холодильник. Продолжу тем же способом. Сейчас будет про индексы, а потом про то, почему индекс есть, а база его…

postgresqlиндексыexplain analyzeb-treeсоставной индексплан запросаseq scanindex scanоптимизация запросовsql
Habr
RU

Как я сделал mmap-базу для 4 миллионов товаров и 700 тысяч посадочных страниц

Сделал mmap-базу для 4 млн товаров и получил ~35k RPS. Поиск оказался настолько быстрым, что bottleneck пришлось искать уже после базы. В итоге опти…

GommapJSONSilentJSONMakodbпроизводительностьhighloadиндексыshardingСУБД
Habr
RU

Вслед за Эдвардом Сьоре, или как я писал свою реализацию on disk B+Tree-индекса на Rust

Вслед за Эдвардом Сьоре, или как я писал свою реализацию on disk B+Tree-индекса на Rust. В этой статье попытаюсь осветить нюансы написание своего иг…

rustиндексыбазы данныхбазы данных деревьяsqlструктуры данных
Habr
RU

Django ORM ломается не там, где вы смотрели: шесть ошибок

Django ORM умеет долго скрывать проблемы: лишние запросы, гонки при save() , затянувшиеся транзакции и выборки, которые незаметно съедают памят…

Django ORMQuerySetоптимизация запросовPostgreSQLтранзакциииндексыN+1блокировкимассовые операциипроизводительность.
Habr
RU

Ускорение в 200 раз — не предел

Всем привет, меня зовут Сергей Татарцев. Я эксперт-разработчик розничной АБС в банке Уралсиб. В финтехе уже много лет, в Уралсибе несколько месяцев…

оптимизацияоптимизация производительностиалгоритмыplsql oracle database базы_данныхplsqlматематикаускорение запросовбазы данныхиндексыкластеризация
Habr
RU

PostgreSQL для бэкендера: 10 фич, которыми мало пользуются, а зря

Вы храните в PostgreSQL пользователей, заказы и платежи — а потом проект обрастает Redis для очереди, отдельным поисковиком и самодельными блокировк…

postgresqlбэкендоконные функцииsqlоптимизация запросовполнотекстовый поискиндексыочередь задачбазы_данныхskip locked
Habr
RU

ObjectId против UUID: как выбор _id в MongoDB влияет на API, индексы и миграции

_id в MongoDB кажется мелочью, пока не попадает в API, события и миграции. Разбираем, когда оставить стандартный ObjectId , когда нужен UUID , почем…

MongoDBObjectIdUUIDBSONиндексыархитектураAPIбазы данныхидентификаторы
Habr
RU

5 ошибок при миграции с PostgreSQL на ClickHouse: как не убить производительность индексами

В этой статье разбираем пять конкретных ошибок при миграции индексов, которые мы совершали сами на реальных проектах. Почему B‑tree н…

ClickHousePostgreSQLиндексымиграция баз данныхпроизводительность БДMergeTreeархитектура данных
Habr
RU

Ваш PostgreSQL болеет молча. Десяток запросов, чтобы это увидеть

Пятница, вечер. Один эндпоинт начал отвечать восемь секунд вместо двухсот миллисекунд, а в Grafana всё зелёное. PostgreSQL редко падает громко — он…

postgresqlпроизводительностьidesqlиндексыvacuumbloatтранзакциитяжелые запросы
Habr
RU

Почему CRM в Битрикс24 тормозит на 50К сделок и что с этим делать

Когда CRM в Битрикс24 начинает открывать список сделок по 10 секунд, обычно первым делом подозревают сервер, нагрузку или саму платформу. Но на прак…

Битрикс24CRMпроизводительность CRMMySQLslow query logEXPLAINиндексыпользовательские поляD7 ORMоптимизация запросов