В официальном блоге Django появилась информация о том, что планируется расширить функционал встроенной ORM миграциями — важным функционалом, который присутствует во многих современных ОРМ-ах, что называется «из коробки», например в рельсовом ActiveRecord или пхпшной Doctrine. Исторически сложилось, что этот функционал отсутствует в Django ORM. Читать полностью »
Рубрика «базы данных» - 46
Фреймворк Django получит миграции схемы БД
2013-03-22 в 17:21, admin, рубрики: django, Kickstarter, orm, python, web-разработка, базы данных, Блог компании «NetAngels», Веб-разработка, миграция бд, метки: Django, Kickstarter, orm, python, web-разработка, базы данных, миграция бдИспользование Berkeley DB в Android приложении
2013-03-14 в 13:21, admin, рубрики: android, базы данных, Разработка под android, метки: android, базы данных После успешно пройденного этапа «Hello World» под Android, решил написать для интереса простенькое приложение под Android, основной функционал которого сводился к хранению некоторого набора данных на устройстве. И очень мне не хотелось работать c SQL. Привык как-то уже работать с объектами. По-этому порыскав по интернету в поисках совместимых с Android решений нашёл только одно — Berkeley DB, встраиваемая БД.
Причём документация от Oracle показывала значительно лучшие показатели по производительности по сравнению с SQlite.По этому для своего приложения (дальше моего телефона оно так и не ушло) я выбрал этот формат хранения данных.
Класс являющийся ядром работы с БД сделан по шаблону Singleton, и получился следующим:
Читать полностью »
SQLite — размер базы после DELETE FROM
2013-03-09 в 19:39, admin, рубрики: sql, sqlite, Администрирование баз данных, базы данных, оптимизация, метки: sqlite, базы данных, оптимизацияВсем доброго времени суток. Хотелось бы поделиться интересным, на мой взгляд, опытом работы с SQLite.
Сам я являюсь RubyOnRails разработчиком, вследствие чего для небольших проектов стараюсь использовать стандартную конфигурацию, которая использует SQLite. Не вижу смысла тянуть в зависимость простого приложения тяжеловесные СУБД.
Читать полностью »
Важнейшие $in’ы: производительность MongoDB в диапазонах
2013-03-07 в 9:17, admin, рубрики: mongodb, nosql, Администрирование баз данных, базы данных, индексацияПеревод этой статьи уже есть на хабре, но он ужасен и содержит ложную информацию.
Приветствую, искатели приключений! Путешествуя по территории индексации MongoDB хотя бы некоторое время, вы, возможно, познакомились с таким правилом: если ваш запрос содержит сортировку/порядок (orderby) – добавьте сортируемое поле в конец индекса который используется для запроса.
Во многих случаях когда запрос содержит равенство (то есть поиск конкретного значения, например, {“name”: “Charlie”}) данная мантра бывает весьма полезной.
Запрос
db.drivers.find({"country": {"$in": ["A", "G"]}).sort({"carsOwned": 1})
Индекс
{"country": 1, "carsOwned": 1}
Такая комбинация будет не такой эффективной, как может показаться, не смотря на то, что индекс соответствует правилу. В этом запросе есть ловушка, в которую вы с легкостью попадете следуя общепринятому мнению.Читать полностью »
Знакомство с Rest4Enterprise или REST-сервисы для ленивых
2013-02-18 в 20:02, admin, рубрики: api, ldap, mysql, rest, sql, базы данных, Веб-разработка, сервисы, метки: api, ldap, mysql, rest, базы данных, сервисы Так сложилось, что по долгу службы столкнулся со следующей задачей: нужно было быстро и как можно проще сгенерировать много REST-сервисов. Мне казалось, что должно существовать немало решений, этой не такой уж и сложной задачи. И каково было мое удивление, когда пошарив по бескрайним просторам Интернета, нашел всего лишь пару подходящих продуктов. Среди наиболее подходящих мне отобрал Rest4Enterprise, restSQL и IBM Web API Services (может кто еще какие знает? you are welcom!). restSQL показался совсем хиленьким, продукт от IBM – наоборот, мощнейшим зверем. Поэтому придерживаясь правила «золотой середины», решил опробовать Rest4Enterprise. Продукт еще совсем новый (январь 2013), информации по нем, кроме официального источника нет вообще, поэтому решил поделиться с хабрачитателями своим небольшим опытом работы с ним.
Читать полностью »
Анонсирован стабильный релиз MySQL 5.6
2013-02-06 в 4:44, admin, рубрики: mysql, oracle, sql, базы данных, метки: mysql, oracle, базы данных5 февраля компания Oracle анонсировала выпуск стабильного релиза MySQL версии 5.6. В новой версии проделана огромная работа. Основные усилия были направлены на повышение производительности, масштабируемости и гибкости. Масштабным по значимости изменениям подвергся движок InnoDB.
К ключевым улучшения можно отнести: поддержка средств полнотекстового поиска, возможность доступа к данным через memcached API, увеличена производительность работы при интенсивной записи данных, а также увеличена масштабируемость при обработке большого числа одновременных запросов.
Читать полностью »
Статистика в СУБД Teradata
2013-02-01 в 6:39, admin, рубрики: sql, teradata, Администрирование баз данных, базы данных, Блог компании Teradata, статистика, СУБД, метки: teradata, базы данных, статистика, СУБД«There are three kinds of lies: lies, damned lies, and statistics» © Бенджамин Дизраэли, 40-й премьер-министр Великобритании
Статистическая информация о данных в СУБД играет важную роль в производительности системы. С учетом ряда комментариев к прошлой статье, мы решили описать, зачем нужна статистика в СУБД Teradata, как она учитывается оптимизатором, на что влияет, и дать ряд практических советов по сбору статистики для тех, кто работает с нашей СУБД.Читать полностью »
Степени — ключ к быстрой иерархии в реляционной БД
2013-01-22 в 19:10, admin, рубрики: django, Алгоритмы, базы данных, деревья, иерархические структуры, иерархия, Программирование, метки: Django, базы данных, деревья, иерархические структуры, иерархия После публикации на Хабре своей первой статьи, об одном из способов организации иерархии в реляционной БД, у меня осталось чувство не доведенного до конца дела.
Судя по комментариям, кто-то принимал предложенный метод за другой, спрашивали чем не устраивает “django-mttp”, рассказывали о поддержке деревьев в PostgreSQL…
Спасибо всем отписавшимся, но из-за сумбурного изложения в самой статье, думаю, что я не сумел донести до читателя то, что хотел. А “если я чего решил, то выпью обязательно”(с)
Поэтому, я решился на еще одну попытку изложения интересующего меня подхода. А именно — хранение иерархии в числовом коде, вычисляемом на основании данных о размерности дерева. То есть, заранее определены максимальные количество Уровней и количество Детей у каждого Родителя (возможные диапазоны достаточно велики, поэтому, заранее пугаться этого не стоит). При таких вводных, код, каждого иерархического элемента, будет являться и путем до него, и включать диапазон всех Детей. А это сулит скорость, и много еще чего…
Далее — с картинками и таблицами, без привязки к какой-либо БД (ибо это не важно). В конце статьи есть ссылки на реализацию на Django. Читать полностью »
Проектирование баз данных
2013-01-15 в 7:52, admin, рубрики: Администрирование баз данных, базы данных, Песочница, метки: базы данныхПроектирование баз данных.
Итак, поискав на хабре информацию по проектированию БД, и не найдя ничего более или менее вразумительного, я решил написать об этом небольшую статью.
Проектирование базы данных сводится к трем последовательным этапам:
- Концептуальное проектирование
- Логическое проектирование
- Физическое проектирование
Ниже я предлагаю ознакомиться с ними более детально.
Читать полностью »
Степени — ключ к быстрой иерархии (пример на Django)
2013-01-14 в 9:19, admin, рубрики: django, базы данных, деревья, иерархические структуры, Песочница, метки: Django, базы данных, деревья, иерархические структуры Есть множество способов организации иерархического хранения данных. В последнее время меня заинтересовал вопрос по структуре каталога, например, интернет-магазина. А именно, когда Группы и Товары хранятся в разных таблицах.
При навигации посетителя по Группам, должны выводиться Товары из всех Подгрупп.
Хотелось бы, имея код Группы, получить быстрый запрос к таблице Товаров, результатом которого были бы Товары из текущей Группы и всех ее Подгрупп.
Читать полностью »