MongoDB: полное руководство

Book description

Эта книга представляет собой исчерпывающее руководство по работе с MongoDB 4.2 – мощной документоориентированной системой управления ба-зами данных. Авторы, внесшие личный вклад в создание и развитие MongoDB, начинают описание системы с самых азов (история создания, базовая термино-логия) и постепенно переходят к более сложным темам (выполнение запросов, индексация, агрегирование, транзакции, наборы реплик, управление опера-циями, шардинг и администрирование данных, долговечность, мониторинг и безопасность).Читатель получит конкретные советы по написанию приложения, которое хорошо работает с MongoDB, выяснит, какие системные настройки следует учитывать при ее развертывании и как устанавливать MongoDB в Windows, OS X и Linux.Издание предназначено для разработчиков объемных баз данных, масштаби-рование которых является одной из приоритетных задач.

Table of contents

  1. Предисловие
    1. Как устроена эта книга
    2. Начало работы с MongoDB
    3. Разработка с MongoDB
    4. Репликация
    5. Шардинг
    6. Администрирование приложений
    7. Администрирование сервера
    8. Приложения
    9. Обозначения, принятые в этой книге
    10. Использование примеров кода
    11. Обучение в режиме онлайн
  2. Предисловие от издательства
    1. Отзывы и пожелания
      1. Список опечаток
      2. Нарушение авторских прав
  3. Часть I
  4. Введение в MongoDB
    1. Глава 1
    2. Введение
      1. Простота использования
      2. Разработана для масштабирования
      3. Богатство функций…
      4. …Без ущерба для скорости
      5. Философия
    3. Глава 2
    4. Начало работы
      1. Документы
      2. Коллекции
        1. Динамические схемы
        2. Именование
      3. Базы данных
      4. Начало работы с MongoDB
      5. Знакомство с оболочкой MongoDB
        1. Запуск оболочки
        2. Клиент MongoDB
        3. Основные операции с оболочкой
      6. Типы данных (1/2)
      7. Типы данных (2/2)
        1. Основные типы данных
        2. Даты
        3. Массивы
        4. Вложенные документы
        5. _id и ObjectId
      8. Использование оболочки MongoDB (1/2)
      9. Использование оболочки MongoDB (2/2)
        1. Советы по использованию оболочки
        2. Запуск скриптов с помощью оболочки
        3. Создание файла .mongorc.js
        4. Настройка приглашения
        5. Editing Complex Variables
        6. Неудобные имена коллекций
    5. Глава 3
    6. Создание, обновление и удаление документов
      1. Вставка документов
        1. insertMany
        2. Проверка вставки
        3. insert
      2. Удаление документов
        1. drop
      3. Обновление документов (1/5)
      4. Обновление документов (2/5)
      5. Обновление документов (3/5)
      6. Обновление документов (4/5)
      7. Обновление документов (5/5)
        1. Замена документа
        2. Использование операторов обновления
        3. Upsert
        4. Обновление нескольких документов
        5. Возврат обновленных документов
    7. Глава 4
    8. Выполнение запросов
      1. Знакомство с методом find
        1. Указываем, какие ключи нужно вернуть
        2. Ограничения
      2. Критерии запроса
        1. Условные операторы
        2. Запросы с оператором OR
        3. $not
      3. Запросы для определенных типов (1/2)
      4. Запросы для определенных типов (2/2)
        1. null
        2. Регулярные выражения
        3. Запросы элементов массива
        4. Запросы по вложенным документам
      5. Операторы $where
      6. Курсоры (1/2)
      7. Курсоры (2/2)
        1. Ограничения, пропуск и сортировка
        2. Избегайте больших пропусков
        3. Бесконечные курсоры
  5. Часть II
  6. Разработка приложения
    1. Глава 5
    2. Индексы
      1. Знакомство с индексами
        1. Создание индекса
        2. Знакомство с составными индексами
        3. Как MongoDB выбирает индекс
        4. Использование составных индексов
        5. Как операторы с символом $ используют индексы
        6. Индексирование объектов и массивов
        7. Кардинальность индекса
      2. Вывод explain (1/2)
      3. Вывод explain (2/2)
      4. Когда не стоит прибегать к индексированию
      5. Типы индексов
        1. Уникальные индексы
        2. Частичные индексы
      6. Управление индексами
        1. Идентификация индексов
        2. Замена индексов
    3. Глава 6
    4. Специальные типы индексов и коллекций
      1. Геопространственные индексы
        1. Типы геопространственных запросов
        2. Использование геопространственных индексов
        3. Составные геопространственные индексы
        4. Индексы 2d
      2. Индексы для полнотекстового поиска (1/2)
      3. Индексы для полнотекстового поиска (2/2)
        1. Создание текстового индекса
        2. Поиск по тексту
        3. Оптимизация полнотекстового поиска
        4. Поиск на других языках
      4. Ограниченные коллекции
        1. Создание ограниченных коллекций
        2. Настраиваемые курсоры
      5. Индексы TTL
      6. Хранение файлов с помощью GridFS
        1. Начало работы с GridFS: mongofiles
        2. Работа с GridFS из драйверов MongoDB
        3. Что под капотом
    5. Глава 7
    6. Знакомство с фреймворком агрегации
      1. Конвейеры, этапы и настраиваемые параметры
      2. Начало работы с этапами: знакомые операции (1/2)
      3. Начало работы с этапами: знакомые операции (2/2)
      4. Выражения
      5. $project (1/2)
      6. $project (2/2)
      7. $unwind (1/2)
      8. $unwind (2/2)
      9. Выражения массивов (1/2)
      10. Выражения массивов (2/2)
      11. Аккумуляторы
        1. Использование аккумуляторов в этапах с $project
      12. Знакомство с группировкой (1/3)
      13. Знакомство с группировкой (2/3)
      14. Знакомство с группировкой (3/3)
        1. Поле _id в этапах $group
        2. Сравнение $group и $project
      15. Запись результатов конвейера агрегации в коллекцию
    7. Глава 8
    8. Транзакции
      1. Знакомство с транзакциями
        1. Определение ACID
      2. Как использовать транзакции
      3. Настройка ограничений транзакций для вашего приложения
        1. Ограничения на размер журнала операций и ограничения по времени
    9. Глава 9
    10. Разработка приложений
      1. Аспекты проектирования схем
        1. Шаблоны проектирования схем
      2. Нормализация и денормализация (1/2)
      3. Нормализация и денормализация (2/2)
        1. Примеры представления данных
        2. Кардинальность
        3. Друзья, подписчики и другие неудобства
      4. Оптимизация манипулирования данными
        1. Удаление старых данных
      5. Планирование баз данных и коллекций
      6. Управление согласованностью
      7. Перенос схем
      8. Управление схемами
      9. Когда не стоит использовать MongoDB
  7. Часть III
  8. Репликация
    1. Глава 10
    2. Настройка набора реплик
      1. Знакомство с репликацией
      2. Настройка набора реплик, часть 1
      3. Пара слов касательно работы в сети
      4. Вопросы безопасности
      5. Настройка набора реплик, часть 2
      6. Наблюдение за репликацией (1/2)
      7. Наблюдение за репликацией (2/2)
      8. Изменение настройки набора реплик
      9. Проектирование набора
        1. Как работают выборы
      10. Параметры конфигурации членов
        1. Приоритет
        2. Скрытые члены
        3. Арбитры
        4. Построение индексов
    3. Глава 11
    4. Компоненты набора реплик
      1. Синхронизация
        1. Начальная синхронизация
        2. Репликация
        3. Работа с устареванием данных
      2. Тактовые сигналы
        1. Состояния членов
      3. Выборы
      4. Откаты
        1. Когда откаты не работают
    5. Глава 12
    6. Подключение к набору реплик из своего приложения
      1. Как ведет себя соединение типа «клиент к набору реплик»
      2. Ожидание репликации при операциях записи
        1. Другие параметры для "w"
      3. Гарантии специализированной репликации
        1. По одному серверу на каждый центр обработки данных
        2. Гарантия большинства нескрытых членов
        3. Создание других гарантий
      4. Отправка операций чтения на вторичные узлы
        1. Соображения по поводу согласованности
        2. Вопросы нагрузки
        3. Причины чтения с вторичных узлов
    7. Глава 13
    8. Администрирование
      1. Запуск членов в автономном режиме
      2. Конфигурация набора реплик
        1. Создание набора реплик
        2. Изменение членов набора
        3. Создание более крупных наборов
        4. Принудительное переконфигурирование
      3. Управление состоянием членов
        1. Превращение первичных узлов во вторичные
        2. Предотвращение выборов
      4. Мониторинг репликации (1/3)
      5. Мониторинг репликации (2/3)
      6. Мониторинг репликации (3/3)
        1. Получение статуса
        2. Визуализация графика репликации
        3. Циклы репликации
        4. Отключение цепочки
        5. Расчет величины отставания
        6. Изменение размера журнала операций
        7. Построение индексов
        8. Бюджетная репликация
  9. Часть IV
  10. Шардинг
    1. Глава 14
    2. Знакомство с шардингом
      1. Что такое шардинг?
        1. Разбираемся с компонентами кластера
      2. Настройка кластера на одной машине (1/3)
      3. Настройка кластера на одной машине (2/3)
      4. Настройка кластера на одной машине (3/3)
    3. Глава 15
    4. Конфигурирование шардинга
      1. Когда использовать шардинг
      2. Запуск серверов (1/3)
      3. Запуск серверов (2/3)
      4. Запуск серверов (3/3)
        1. Конфигурационные серверы
        2. Процессы mongos
        3. Добавление шарда из набора реплик
        4. Добавляем емкости
        5. Шардинг данных
        6. Диапазоны чанков
        7. Расщепление чанков
      5. Балансировщик
      6. Сличения
      7. Потоки изменений
    5. Глава 16
    6. Выбор ключа шардинга
      1. Подводя итоги использования
      2. Иллюстрация распределений (1/2)
      3. Иллюстрация распределений (2/2)
        1. Монотонно возрастающие ключи
        2. Случайно распределенные ключи
        3. Ключи с привязкой к местоположению пользователя
      4. Стратегии
        1. Хешированные ключи шардинга
        2. Хешированные ключи шардинга для GridFS
        3. Стратегия «пожарного шланга»
        4. Несколько хот-спотов
      5. Правила и рекомендации
        1. Ограничения
        2. Кардинальность
      6. Управление распределением данных
        1. Использование кластера для нескольких баз данных и коллекций
        2. Ручной шардинг
    7. Глава 17
    8. Администрирование шардинга
      1. Просмотр текущего состояния
        1. Получение сводки с помощью функции sh.status()
        2. Просмотр информации о конфигурации
      2. Отслеживание сетевых подключений (1/2)
      3. Отслеживание сетевых подключений (2/2)
        1. Получение статистики о соединениях
        2. Ограничение числа соединений
      4. Администрирование сервера
        1. Добавление серверов
        2. Смена серверов в шарде
        3. Удаление шарда
      5. Балансировка данных (1/2)
      6. Балансировка данных (2/2)
        1. Балансировщик
        2. Изменение размера чанков
        3. Перемещение чанков
        4. Неразделимые чанки
        5. Обновление конфигураций
  11. Часть V
  12. Администрирование приложений
    1. Глава 18
    2. Смотрим, что делает ваше приложение
      1. Просмотр текущих операций
        1. Поиск проблемных операций
        2. Ложные срабатывания
        3. Предотвращение фантомных операций
      2. Использование системного профилировщика
      3. Вычисление размеров (1/2)
      4. Вычисление размеров (2/2)
        1. Документы
        2. Коллекции
        3. Базы данных
      5. Использование утилит mongotop и mongostat
    3. Глава 19
    4. Обеспечение безопасности в MongoDB
      1. Аутентификация и авторизация в MongoDB
        1. Механизмы аутентификации
        2. Авторизация
        3. Использование сертификатов x.509 для аутентификации членов и клиентов
      2. Руководство по аутентификации в MongoDB и шифрованию на транспортном уровне (1/3)
      3. Руководство по аутентификации в MongoDB и шифрованию на транспортном уровне (2/3)
      4. Руководство по аутентификации в MongoDB и шифрованию на транспортном уровне (3/3)
        1. Создание центра сертификации
        2. Создание и подпись сертификатов членов
        3. Генерация и подписание клиентских сертификатов
        4. Создание набора реплик без включенной аутентификации и авторизации
        5. Создание пользователя с правами администратора
        6. Перезапуск набора реплик с включенной аутентификацией и авторизацией
    5. Глава 20
    6. Долговечность
      1. Долговечность на уровне членов с помощью журналирования
      2. Долговечность на уровне кластера при использовании гарантии записи
        1. Опции w и wtimeout для параметра writeConcern
        2. Опция j (ведение журнала) для параметра writeConcern
      3. Долговечность на уровне кластера при использовании гарантии чтения
      4. Долговечность транзакций с использованием гарантии записи
      5. Чего MongoDB не гарантирует
      6. Проверка на предмет наличия повреждений
  13. Часть VI
  14. Администрирование сервера
    1. Глава 21
    2. Настройка MongoDB в рабочем окружении
      1. Запуск из командной строки
        1. Конфигурирование на базе файлов
      2. Остановка MongoDB
        1. Шифрование данных
        2. SSL-соединения
      3. Протоколирование
    3. Глава 22
    4. Мониторинг MongoDB
      1. Мониторинг использования памяти
        1. Знакомство с памятью компьютера
        2. Отслеживание использования памяти
        3. Отслеживание отказов страницы
        4. Время ожидания ввода/вывода
      2. Вычисление рабочего множества
        1. Примеры рабочего множества
      3. Отслеживание производительности
      4. Отслеживание свободного пространства
      5. Мониторинг репликации
    5. Глава 23
    6. Создание резервных копий
      1. Методы резервного копирования
      2. Резервное копирование сервера (1/2)
      3. Резервное копирование сервера (2/2)
        1. Снимок файловой системы
        2. Копирование файлов данных
        3. Использование mongodump
      4. Особые факторы при копировании наборов реплик
      5. Особые факторы при копировании разделенного кластера
        1. Резервное копирование и восстановление всего кластера
        2. Резервное копирование и восстановление одного шарда
    7. Глава 24
    8. Развертывание MongoDB
      1. Проектирование системы
        1. Выбор носителя для хранения
        2. Рекомендуемые уровни спецификации RAID
        3. Центральный процессор
        4. Операционная система
        5. Объем подкачки
        6. Файловая система
      2. Виртуализация
        1. Избыточное выделение памяти
        2. Таинственная память
        3. Обработка проблем ввода/вывода сетевого диска
        4. Использование несетевых дисков
      3. Конфигурирование настроек системы (1/2)
      4. Конфигурирование настроек системы (2/2)
        1. Отключение архитектуры неравномерного доступа к памяти
        2. Упреждающее чтение
        3. Отключение THP
        4. Выбор алгоритма планирования
        5. Отключаем отслеживание времени доступа
        6. Изменение ограничений
      5. Конфигурирование сети
      6. Наводим порядок в системе
        1. Синхронизация часов
        2. OOM Killer
        3. Отключите периодические задачи
  15. Приложение А
  16. Установка MongoDB
    1. Выбор версии
    2. Установка в Windows
      1. Установка в качестве службы
    3. Установка в POSIX (Linux и Mac OS X)
      1. Установка из диспетчера пакетов
  17. Приложение B
  18. Внутреннее устройство MongoDB
    1. BSON
    2. Проводной протокол
    3. Файлы данных
    4. Пространства имен
    5. Подсистема хранения WiredTiger
  19. Об авторах
  20. Об изображении на обложке
  21. Предметный указатель

Product information

  • Title: MongoDB: полное руководство
  • Author(s): Шеннон Брэдшоу, Йон Брэзил, Кристина Ходоров
  • Release date: April 2020
  • Publisher(s): DMK Press
  • ISBN: None