alekfed

a

Базы данных

Общий опыт: 3 года

У меня есть опыт работы как с традиционными реляционными базами данных, так и с NoSQL.

RDBMS

Я работал с PostgresSQL, MySQL и SQLite. PostgreSQL — универсальный вариант, в котором можно и триггеры наворачивать, и даже JSON хранить. Тем не менее, все нулевые основным выбором для базы данных была MySQL, так что мне довелось поработать и с ней (в т. ч. с MariaDB). Я такжеt использовал SQLite для сбора и хранения информации, собираемой в ходе работы испытатеьного оборудования, которое я разрабатывал.

Несмотря на потенциал SQL как DSL, в моей практике пока не возникало необходимости в оптимизации запросов к БД, в отличие от обилия в реляционных схемах отношений типа many-to-many. В связи с этим, мой опыт в первую очередь базируется на взаимодействии с ORM.

NoSQL

Среди документо-ориентированных баз у меня больше всего опыта с MongoDB , в меньшей степени с CouchDB и ArangoDB . Идея хранить документы целиком неплоха до того момента, пока не возникает необходимости делать batch-запросы по отдельным полям документов в разных коллекциях. Даже специализированный DSL (ArangoDB) или перевод запросов на REST API (CouchDB) не дотягивают до быстродействия и удобства SQL, так что сейчас я лишний раз задумываюсь о необходимости использования документо-ориентированных баз.

Из key-value storage я использовал Redis для хранения идентификаторов процессов в планировщике задач и в качестве примитивного очереди сообщений. Отработал неплохо, но в определённый момент всё-таки потребовался RabbitMQ в качестве MQ.

Из колоночных БД у меня есть небольшой опыт работы с HBase которую я планировал использовать для задачи по аналитике, но потом стало понятно, колоночная база не подходила для той конкретной задачи, и больше я к ней не возвращался.


Иллюстрация



email icon telegram icon github icon