Серверное ПО
PostgreSQL — система управления базами данных
PostgreSQL — это популярная свободная объектно‑реляционная система управления базами данных. PostgreSQL базируется на языке SQL, отличается высокой надёжность и имеет широкие возможности.
В PostgreSQL нет ограничений на максимальный размер базы данных, количество записей и индексов таблицах. В СУБД встроены мощные и надёжные механизмы транзакций и репликации. Также СУБД отличает легкая расширяемость и возможность онкой настройки.
Масштабирование баз данных — партиционирование, репликация и шардинг
СУБД — это очень часто «узкое место» в производительности веб‑приложений. В момент, когда сервер баз данных не может справится с нагрузками, производится масштабирование.
В этой статье мы рассмотрим наиболее часто используемые способы увеличения производительности СУБД — партиционирование, репликацию и шардинг.
MongoDB — документо-ориентированная база данных (NoSQL)
MongoDB — это NoSQL хранилище данных, крайне удобное для хранения информации, которая не может быть нормально структурирована в рамках реляционных баз данных.
MongoDB — это СУБД с открытым исходным кодом, не требующая описания схемы таблиц. Документы в MongoDB хранятся в JSON или BSON, работа с такой моделью проще кодируется и проще управляется, а внутренняя группировка релевантных данных обеспечивает дополнительный выигрыш в быстродействии.
SQL-инъекции — распространённый метод взлома веб‑приложений и сайтов
SQL‑инъекции — это один из распространённых способов взлома сайтов и веб‑приложений, работающих с реляционными базами данных.
SQL‑инъекции основаны на внедрении в выполняемый приложением запрос к базе данных произвольного SQL‑кода, переданного злоумышленником. Последствиями SQL‑инъекций может быть как кража, модификация или удаление данных, так и полный взлом атакуемой системы — получение привилегированного доступа, например.
Реляционные базы данных и NoSQL‑хранилища
Базы данных служат для хранения и обработки данных. Бывают реляционные (SQL) и нереляционные (NoSQL) системы управления базами данных.
Реляционные системы управления базами данных (SQL) хранят данные в табличных структурах и чаще всего используются в качестве основного хранилища для веб‑приложений. Они очень стабильны и их надёжность проверена временем. Нереляционные СУБД (NoSQL) заметно моложе реляционных баз данных, а также заметно от них отличаются по структуре хранения данных и работе с ними. Большинство нереляционных хранилищ превосходят классические SQL СУБД по скорости доступа или при работе со специфическими типами данных, но обычно эта скорость достигается за счёт снижения надёжности хранения. На практике NoSQL‑решения обычно применяются не для хранения всех данных приложения, а для решения специфических задач — для кэширования, хранения логов, управления очередями, для распределённого хранения данных, ускорения поиска и фильтрации.
Веб-сервер Apache
Apache — это HTTP‑сервер. Основными достоинствами считаются надёжность и гибкость конфигурации.
MariaDB — система управления реляционными базами данных
MariaDB — ответвление реляционной СУБД MySQL, разрабатываемое сообществом под лицензией GPL. MariaDB полностью совместима с приложениями, использующими MySQL, а переход на эту СУБД оправдан тем, что MySQL уже не так активно развивается.
MySQL — система управления базами данных
MySQL — это реляционная система управления базами данных с открытым исходным кодом. В настоящее время эта СУБД одна из наиболее популярных в веб‑приложениях — подавляющее большинство CMS использует именно MySQL (часто только её, без альтернатив), а почти все веб‑фреймворки поддерживают MySQL уже на уровне базовой конфигурации (без дополнительных модулей).
Ускоряем работу сайта при помощи кеширования на базе Memcached
Memcached — это хранилище «ключ => значение», использование которого очень эффективно для ускорения работы сайта или веб‑приложения.
Быстрый поиск на сайте, используя ElasticSearch или Sphinx
Sphinx и ElasticSearch — это поисковые «движки», которые обеспечивают более быстрый поиск и фильтрацию по сравнению с реляционными базами данных, а также обеспечивают возможность использования многих полезных функций поиска, например, учитывают морфологию языка, осуществляют фасеточный поиск, работают со стоп‑словами, обеспечивают выборочную индексацию и позволяют производить настройку формулы определения релевантности документов.