METANIT.COM – Telegram
METANIT.COM
5.96K subscribers
1.69K photos
82 videos
9 files
1.07K links
Канал о программировании и разработке сайта metanit.com
Download Telegram
10 лучших методов масштабирования баз данных:

1. Индексация: cоздание индексов для часто запрашиваемых столбцов для ускорения поиска данных

2. Вертикальное масштабирование: обновление сервера базы данных, использование более мощного процессора, ОЗУ или хранилища для обработки возросшей нагрузки.

3. Кэшировнаие: хранение часто используемых данных в памяти (например, Redis, Memcached), чтобы снизить нагрузку на базу данных и улучшить время отклика

4. Шардинг: распределение данных по нескольким серверам, разделение БД на более мелкие независимые фрагменты, что обеспечивает горизонтальное масштабирование и повышение производительности.

5. Репликация : Создание нескольких копий (реплик) базы данных на разных серверах, что позволяет распределять запросы на чтение между репликами и повышать доступность.

6. Оптимизация запросов: тонкая настройка SQL-запросов, исключение дорогостоящих операций и эффективное использование индексов для повышения скорости выполнения и снижения нагрузки на базу данных.

7. Пул подключений: сокращение накладных расходов на открытие/закрытие соединений с базой данных за счет повторного использования существующих соединений, что повышает производительность при интенсивном трафике.

8. Декомпозиция БД: разделение больших таблиц на более мелкие, более управляемые части (разделы), каждая из которых содержит подмножество столбцов из исходной таблицы.

9. Денормализация: хранение данных в избыточном, но структурированном формате, чтобы минимизировать сложные соединения данных и ускорить рабочие нагрузки с интенсивным чтением.

10. Представления: предварительное вычисление и сохранение результаты сложных запросов в виде отдельных таблиц, чтобы избежать дорогостоящих пересчетов, снизить нагрузку на базу данных и улучшить время отклика.
👍1032👨‍💻1
(Наглядная иллюстрация к предыдущему посту)
👍9🆒32👨‍💻1
This media is not supported in your browser
VIEW IN TELEGRAM
Как работает Linux #linux
8❤‍🔥3👏1🤯1
Типы индексов базы данных

[1.] Кластерный индекс (clustered index)
◾️ Физически переупорядочивает строки данных на основе ключа индекса.
◾️ По одному индексу на таблицу
◾️ Значительно ускоряет запросы по диапазону (например, поиск всех заказов между датой X и Y) и запросы по индексированным столбцам
◾️ Может замедлить изменение данных (вставку, обновление, удаление) из-за переупорядочения.

[2.] Некластеризованный индекс (non-clustered index)
◾️ Создает отдельную структуру с указателями на строки данных, отсортированные по ключу индекса.
◾️ Допускается несколько индексов для одной таблицы.
◾️ Эффективно для поиска равенства (например, поиска клиента с идентификатором 123).
◾️ Может использоваться для индексов покрытия, где все требуемые столбцы включены в индекс.

[3.] Уникальный индекс
◾️ Гарантирует, что все значения в столбце или комбинации столбцов являются уникальными.
◾️ Могут быть кластеризованными или некластеризованными.
◾️ Предотвращает дублирование значений, обеспечивая целостность данных.
◾️ Часто используется для альтернативных ключей (кроме первичного ключа), которые должны быть уникальными.

[4.] Фильтрованный индекс (Filtered Index)
◾️ Индексирует только подмножество строк на основе предиката фильтра.
◾️ Улучшает производительность для запросов, которые часто фильтруют по указанному условию.
◾️ Уменьшает размер индекса по сравнению с индексацией всей таблицы.

[5.] Полнотекстовый индекс (Full-Text Index)
◾️ Обеспечивает эффективный поиск в текстовых данных (например, документах, статьях) на основе ключевых слов и фраз.
◾️ Использует специализированные алгоритмы индексации и поиска (например, инвертированные индексы).
Поддерживает такие лингвистические функции, как стемминг и тезаурус.

[6.] Композитный индекс (Composite Index)
◾️ Индекс, созданный по нескольким столбцам.
◾️ Может быть кластеризованным или некластеризованным.
◾️ Оптимизирует запросы, которые фильтруют или сортируют по нескольким столбцам.
◾️ Порядок столбцов в определении индекса имеет решающее значение для производительности.

[7.] Индекс покрытия/покрывающий индекс (Covering Index)
◾️ Включает все столбцы, необходимые для запроса, в сам индекс, избегая необходимости доступа к базовой таблице.
◾️ Может быть некластеризованным.
◾️ Значительно ускоряет запросы, которым нужны только данные из индексированных столбцов.

[8.] Индекс с включенными столбцами (Index with Included Columns)
◾️ Аналогично покрывающему индексу, но включает только неключевые столбцы.
◾️ Некластеризованные.
◾️ Может улучшить производительность запроса, если дополнительные столбцы используются часто.

[9.] XML-индекс
◾️ Индексирует XML-данные для эффективного выполнения запросов с использованием XPath или специфичных для XML функций.
◾️ Доступно в базах данных, поддерживающих типы данных XML.
◾️ Позволяет запрашивать определенные элементы или атрибуты в XML-документах.

[10.] Частичный индекс (Partial Index)
◾️ Индексирует только подмножество строк, которые соответствуют определенному условию.
◾️ Аналогично отфильтрованным индексам, но с большей гибкостью в определении условий фильтрации.
◾️ Может улучшить производительность запросов для узкоспециализированных вариантов использования.

[11.] Индекс битовой карты (Bitmap Index)
◾️ Эффективно индексирует столбцы с низкой кардинальностью (несколько уникальных значений).
◾️ Сохраняет битовые карты, указывающие, какие строки содержат определенное значение.
👍102🔥1🤯1
Что происходит после запуска контейнера Docker
👍131🔥1
Microsoft тестирует возможность установки Windows 11 в разделы диска с альтернативной файловой системой ReFS.
При чистой установке Windows с помощью файла ISO или прямой загрузке с помощью USB пользователь на этапе установки может выбрать в том числе тип файловой системы.
Возможность выбора типа файловой системы при разметке накопителя обнаружена в тестовой сборке с номером 27823 (Canary).
ReFS (Resilient File System) – файловая система, разрабатываемая Microsoft в качестве альтернативы NTFS. ReFS была представлена в 2012 г. и должна была стать альтернативой NTFS, переняв у нее все лучшее и отсеяв сложное. Например, в отличие от NTFS, ReFS не поддерживает короткие имена файлов, шифрование и сжатие на уровне файлов, а также жесткие ссылки и квоты. В то же время ReFS отличается более высокой надежностью, при этом в значительной степени сохраняет совместимость с возможностями NTFS
https://www.windowslatest.com/2025/03/27/windows-11-setup-will-let-you-choose-between-ntfs-and-refs-when-clean-installing/
🤔6🙏3👏2👍1
Сравнение рабочих столов
😁39👍7🔥3
Основные аспекты кэширования, которые следует учитывать:

Сценарии использования:
- Развертывание решения в памяти
- При работе с высоконагруженными системами
- Когда данные не обновляются часто

Техники кэширования:
- Cache aside
- Write-through
- Read-through
- Write-around
- Write-back

Алгоритмы удаления из кэша:
- Least Recently Used (LRU)
- Least Frequently Used (LFU)
- First-in First-out (FIFO)
- Random Replacement (RR)

Ключевые метрики:
- Коэффициент попадания в кэш
- Задержка
- Пропускная способность
- Коэффициент аннулирования (Invalidation Rate)
- Использование памяти
- использование ЦП
- Использование сети

Другие вопросы:
- Предварительная загрузка наиболее запрашиваемых данных при холодном пуске
- Время жизни (TTL)
👍6
Логические вентили
❤‍🔥17💯4👍3🔥1🗿1
This media is not supported in your browser
VIEW IN TELEGRAM
Наглядно алгоритмы балансировки нагрузки
👍73🔥2
Все основные аспекты SQL
🔥215👍2👏2
Типы ключей в базах данных

Primary key (Первичный ключ)
Уникальный идентификатор для каждой записи в таблице. Он не может быть равен NULL и должен быть уникальным для всей таблицы

Foreign key (Внешний ключ)
Поле в таблице, которое создает ссылочную связь между двумя таблицами. Оно используется для установления отношения между таблицами

Composite key (Составной ключ)
Комбинация двух или более столбцов, используемых в качестве первичного ключа, когда ни один отдельный столбец не достаточен для однозначной идентификации записи

Alternate key (Альтернативный ключ)
Уникальный идентификатор для записи, который не является первичным ключом. Его можно использовать в качестве вторичного ключа при поиске данных в таблице

Candidate key (Ключ-кандидат)
Уникальный идентификатор для записи в таблице, которая потенциально может использоваться в качестве первичного ключа

Surrogate key
Уникальный идентификатор для записи в таблице, обычно присваивается базой данных, а не самим пользователем

#database #sql
👍8🔥4🍾2
Media is too big
VIEW IN TELEGRAM
Стереотипы о программистах на различных языках согласно AI
😁30💩20🥰1👏1🤔1😢1
Основные аспекты работы с API
👍172👏1
Схематически компиляция кода на C++ в exe-файл с помощью компилятора Microsoft Visual C++
#cpp
👍11🍓6🔥3
Рекомендации по построению API
👍12
Шпаргалка по методам массивов в JavaScript #javanoscript
👍8
Секционирование базы данных (partitioning) и Шардинг
Секционирование базы данных применяется для управляемости, а шардинг для масштабируемости.

Секционирование базы данных
Предполагает разделение данных на сегменты (разделы) для более удобного управления или группировки связанных данных.
Часто используется в рамках одной системы и прозрачно для приложения.

Шардинг
Предполагает разделение данных по нескольким базам данных или серверам для распределения нагрузки и горизонтального масштабирования.
Каждый сегмент работает независимо, и часто приложению требуется логика для направления запросов на нужный сегмент, если только система хранения данных не поддерживает перенаправление
👍81🔥1
Роудмап по изучению бэкэнда
👍26🤯4🔥3
2 апреля 2025 года Роскомнадзор рекомендовал владельцам российских интернет-ресурсов отказаться от использования включённого по умолчанию расширения TLS ECH CDN-сервиса компании Cloudflare, так как оно обходит ограничения доступа к запрещённой в РФ информации.
В регуляторе сначала не пояснили, какое именно расширение имеется в виду, а также непонятно, где его надо отключить. Но потом появилсь дополнительная информация по этой ситуации.
«Американская компания CloudFlare, поставщик услуг CDN, включила в октябре 2024 года применение по умолчанию на своих серверах расширение TLS ECH (Encrypted Client Hello). Эта технология — средство обхода ограничений доступа к запрещенной в России информации. Его использование нарушает российское законодательство и ограничивается техническими средствами противодействия угрозам (ТСПУ)», — говорится в сообщении РКН.
«Рекомендуем владельцам информационных ресурсов отключить расширение TLS ECH или, что правильнее, использовать отечественные CDN‑сервисы, которые обеспечивают надёжное и безопасное функционирование ресурсов и защиту от компьютерных атак», — добавили в ведомстве.
https://www.interfax.ru/digital/1017951
🤡30🤣16👍2🥰2🖕2👏1
Рекомендации при разработке микросервисов:

1. Отдельное хранилище данных для каждого микросервиса.
2. Поддержка одинакового уровеня зрелости кода для разных сервисов
3. Отдельная сборка для каждого микросервиса
4. Каждый микросервис выполняет свою отдельную задачу
5. Развертывание в контейнерах
6. Разработка служб без сохранения состояния
7. Применение DDD (дизайн, ориентированный на предметную область)
8. Разработка микро-фронтенда
9. Оркестрация (автоматическое объединение, координация и управление) микросервисов
👍16🔥1👏1