От себя: Надеюсь статья будет полезна не только начинающим, но и поможет более опытным администраторам упорядочить свои знания.
Итак, поехали.
Пользователь
Привет, Хабр!
Сегодня поговорим о том, как правильно настраивать автовакуумирование в PostgreSQL — одном из механизмов, который позволяет базе данных оставаться "в форме" и поддерживать производительность на должном уровне. Если неправильно подойти к настройке, можно столкнуться с деградацией скорости обработки запросов и внезапным ростом объема данных.
Использовать Guid.NewGuid()
в качестве первичного ключа в базе данных — плохая с точки зрения производительности идея. Это связано с тем, что в SQL Server, MySQL и некоторых других БД для первичных ключей создаются кластерные индексы, которые определяют, как строки будут храниться на диске. GUID — это по сути случайное значение, поэтому новая строка может попасть в начало, середину или конец таблицы. Серверу БД в этом случае придётся перемещать другие строки, что приведёт к фрагментации данных, а их извлечение может занять больше времени, если вам нужно извлечь несколько добавленных последовательно записей (например, когда вы добавляете набор связанных сущностей, которые потом будут извлекаться вместе — БД понадобится прочитать данные из разрозненных страниц вместо последовательного чтения набора данных).
Поэтому, чаще всего, лучше пользоваться сгенерированными БД первичными ключами. В SQL Server, например, есть функция NEWSEQUENTIALID()
, которая генерирует последовательные GUIDы. Зачем может понадобиться генерировать ключи именно на клиенте и как это правильно сделать?
В этой статье мы познакомимся с эффективными приемами работы с DOM, которые помогут минимизировать потребление памяти и обеспечить высокую производительность ваших приложений.
Если многобукв - переходите к разделу TLDR ниже
Навеяно этой статьёй. У меня схожая ситуация, только меня не взламывали. Я просто в один момент полностью утратил возможность зайти в свою электронную почту. Надеюсь данная информация поможет кому-то избежать подобной участи.
Я пользуюсь GMail уже лет 20, с момента его появления, с тех пор как появились и предложили невиданный по тем временам гигабайт бесплатного места. А ещё отличный веб-клиент и антиспам. С тех данный продукт Корпорации если не Добра, то по крайней мере Нейтралитета стал №1 для меня и даже не мыслил о чём-либо другом. Нужно создать ящик под какую-то задачу? В первую очередь всегда шёл на Google Mail. Пока недавно Gmail не сказал мне "да не пошёл бы ты в известном направлении", после чего я впервые в жизни всерьёз задумался об альтернативах.
Дело вот в чём. Пару лет назад я создал аккаунт в одной видеоигре, к нему зарегистрировал ящик в Gmail, он использовался только для принятия писем с кодом при входе в игру, больше ни для чего. В эту игру я захожу раз в год, в ящик соответственно тоже, он для меня третьестепенной важности, поэтому мне даже в голову не приходило подключать какие-то дополнительные средства входа вроде 2FA или одноразовых ключей. Я бережно придерживаюсь сетевой гигиены, меня не взламывают и аккаунты не угоняют. И даже если это вдруг произойдёт - большой трагедией не станет, ну потрачу лишние 5 минут своего времени и воспользуюсь функцией восстановления доступа к аккаунту, ведь у мега-корпорации Google с более чем двадцатилетним опытом на рынке наверняка есть развитые средства восстановления доступа, не так ли?
Иллюстрации к статье подготовлены нейросетью freepik.com.
Многие люди на планете играют в видеоигры. Игры помогают улучшить когнитивные способности, провести приятно свободное время. Данная статья посвящена тому, как запустить Windows-игры под Linux в Wayland.
Эта статья могла бы быть: ставим Wine(Proton) и XWayland, запускаем игры, успех, но нет. В данном материале мы будем сами собирать Wine, решать проблемы, а так же наш Wine будет работать напрямую с Wayland композитором без прослойки в виде XWayland. Плюсы такого метода — лучшая производительность и меньше инпут лаг. Благодаря Wine 9.0 это стало возможно, но не все так просто, как может показаться читателю с первого взгляда. Для примера мы запустим игры: Overwatch 2 через Battle.net клиент и Aimbeast, KovaaK's, Apex Legends через Steam.
Если вас заинтересовала статья, то добро пожаловать под cut.
К моему удивлению, в открытом доступе оказалось не так уж много подробных и понятных объяснений того как работает модель GPT от OpenAI. Поэтому я решил всё взять в свои руки и написать этот туториал.
Я бросил себе вызов: симулировать 1000000 (миллион) частиц на чистом Javascript на телефоне, используя только CPU и добившись 60 FPS.
Поехали.
Задача не особо сложна, если выполнять всю работу на GPU, но правило гласит, что нужно пользоваться только CPU, при этом работая на JS, так что никакого WASM.
В статье описывают различные (все известные мне) способы поиска строки по префиксу (по началу строки), которые можно ускорить индексами. Привожу скрипты для тестирования быстродействия и анализирую результат тестов: какой метод и индекс даёт наибольшую эффективность.
SELECT COUNT(*) FROM Sales.SalesOrderDetail
SELECT COUNT_BIG(*) FROM Sales.SalesOrderDetail
В данной статье хочу поднять тему, которая представляет собой одну большую боль для администраторов, разработчиков и тестировщиков высоконагруженных (и не очень) систем под управлением PostgreSQL. Даже не «боль», а «БОЛЬ»!
Удивительно, что за почти 30 лет существования PostgreSQL не появилось нормальных инструментов для получения вменяемых счетчиков и трассировок. Все, кто работают с MS SQL Server используют профайлер. Это обязательный и привычный инструмент, который позволяет вылавливать запросы, интересные нам в рамках исследования. Вылавливать как все запросы без разбора, так и какие-то единичные запросы, которые удовлетворяют правилам отбора. Кроме того, можно настроить не одну трассу, а столько сколько нужно, с разными фильтрами. Эти трассы содержат очень богатый набор измерений для анализа: – Reads физические и логические; Writes; SPID, Процессорное время; план запроса (хэш плана), количество строк и т.д.
Многие компании стали всерьез рассматривать СУБД PostgreSQL как замену MSSQL и сталкиваются с тем, что возможностей для ее мониторинга просто нет – она как черный ящик, в котором наощупь вылавливаешь какую-ту информацию и пытаешься систематизировать ее хоть как-то.