Комментарии 62
НЛО прилетело и опубликовало эту надпись здесь
«Этой же фирме принадлежит Berkeley DB»
Я конечно не спец по BDB, но разве BDB не была написана в Беркли и не принадлежит Oracle?
Я конечно не спец по BDB, но разве BDB не была написана в Беркли и не принадлежит Oracle?
Они только используют эту СУБД в качестве встроенной по-дефолту в Java и обзывают ее JavaDB. По факту это просто форк то ли с косметическими изменениями, то ли вообще без них.
Кто они? Какую СУБД?
JavaDB? Вроде JavaDB — это «is Sun's supported distribution of the open source Apache Derby», по крайней мере так написано здесь: developers.sun.com/javadb/
Какое отношение это имеет к BDB?
Что-то я похоже вконец запутался…
JavaDB? Вроде JavaDB — это «is Sun's supported distribution of the open source Apache Derby», по крайней мере так написано здесь: developers.sun.com/javadb/
Какое отношение это имеет к BDB?
Что-то я похоже вконец запутался…
Вы правы, я спутал. Этой фирме принадлежит еще eXtremeDB.
Ухты, perst увидел после пяти лет забвения =) Когда-то интересовался этим делом. Помню, что не понравилось требование наследоваться от их базового класса.
Ухх… и в самом деле, нехилое требование. В самом тексте статьи не заметил.
А что в этом плохого? Этот класс управляет памятью, рекурсивно загружает объекты, позволяет автоматически изменять объекты, если такой уже есть в БД.
Наследование от базового класса, которым ты не управляешь, иногда неудобно при разработке. Например, когда ты выясняешь, что тебе надо что-нибудь хитрое для сериализации, или пересылки через границу домена, или еще что-нибудь.
используем DTO и проблем не знаем
Да понятно, что можно DTO использовать. Вопрос в том, удобно ли это, и не удобнее ли, когда сами объекты в базе — DTO.
да, хороший вопрос, сам ищу нормальную ORDBMS с хорошей работой через DTO. nHibernate был полным фиаском — ну нельзя там прозрачно использовать DTO, только пляска с бубном в лице Clear сессий и гонянием данных туда сюда на любом update.
nHibernate — это ORM, если я что-то помню.
А так все зависит от критериев нормальности. Вон, и в linq2sql это прозрачно достаточно. Про EF не помню, смотреть надо.
А так все зависит от критериев нормальности. Вон, и в linq2sql это прозрачно достаточно. Про EF не помню, смотреть надо.
вы правы — но мои DTO как раз объекты. пробывал через тупые табличные DTO, но так как у меня много иерархий, я забодался на старте и решил использовать что то, что позволит быстро сохранять DTO со сложными связими. И nHibernate показыл себя с ужасной стороны — хотя если быть честным, он на то, что я с ним вытворял, бал не расчитан.
сейчас пробую siaqodb — немного другой вид ДБ, чем то сродни Mongo.
сейчас пробую siaqodb — немного другой вид ДБ, чем то сродни Mongo.
В какой-то версии они избавились от этого требования.
реквестирую сравнения redis, mongo, memachedb, couchdb…
А, вообще, конечо, вот такое:
в 3.5 фреймворке — это трындец. Для кого лямбды придумывали?
intKeyIndex = db.CreateFieldIndex<int, MyData>("intKey", false);
в 3.5 фреймворке — это трындец. Для кого лямбды придумывали?
«Но можно ли ее применить на сайтах спросите вы?» — не забываем получать коммерческую лицензию, если ваш сайт не open source
А сколько стоит коммерческая лицензия?
Наследование в даном случае — это зло, могли бы и с помощью атрибутов реализовать, например.
[оффтопик]
Код
t1 = new DateTime(DateTime.Now.Ticks);
эквивалентен коду
t1 = DateTime.Now;
потому что DateTime — это структура и при присваивании всегда создается копия обьекта.
[/оффтопик]
Наследование в даном случае — это зло, могли бы и с помощью атрибутов реализовать, например.
[оффтопик]
Код
t1 = new DateTime(DateTime.Now.Ticks);
эквивалентен коду
t1 = DateTime.Now;
потому что DateTime — это структура и при присваивании всегда создается копия обьекта.
[/оффтопик]
После опыта работы с ZODB я очень настороженно отношусь к таким объектным базам.
Там тоже все было очень круто на бумаге:
— объектная БД — каждая запись python-ячий объект
— так же очень удобно с ними работать — как с нативными объектами, ничего конвертировать не надо
— кстати, базовый класс тоже называется Persistent :)
— транзакции
— очень простое описание объектов — так же ввиде перечисления полей и методов
— есть даже генератор объектов по UML-диаграмме
— и даже кластер есть — ZEO
Но на практике это обернулось чудовищным гемором и тормозами. Вобщем ООДБ — будущее, но пока оно очень сырое для серьезного применения.
Там тоже все было очень круто на бумаге:
— объектная БД — каждая запись python-ячий объект
— так же очень удобно с ними работать — как с нативными объектами, ничего конвертировать не надо
— кстати, базовый класс тоже называется Persistent :)
— транзакции
— очень простое описание объектов — так же ввиде перечисления полей и методов
— есть даже генератор объектов по UML-диаграмме
— и даже кластер есть — ZEO
Но на практике это обернулось чудовищным гемором и тормозами. Вобщем ООДБ — будущее, но пока оно очень сырое для серьезного применения.
ол-ла-ла… Как же вас понимаю.
У нас в конторе элементы zope юзаются в качестве базы для внутреннего фреймворка. Мать честная… Как же хорошо бывает после этого вечерами халтурку на Джанго поделать! :)
У нас в конторе элементы zope юзаются в качестве базы для внутреннего фреймворка. Мать честная… Как же хорошо бывает после этого вечерами халтурку на Джанго поделать! :)
о том что это будущее уже 30 лет говорят, но пока что-то никак. видимо не так уж и хороша эта модель :)
а лучше ли того же sqlite? При всех потенциальных проблемах, штука работает; а если еще и держать в памяти целиком — то еще и довольно быстро.
Да и поддержка… Java/.Net, конечно, мейнстрим, но не ими одними жив IT
Да и поддержка… Java/.Net, конечно, мейнстрим, но не ими одними жив IT
а, если сравнить Perst с той же db4o? мне кажется последняя на порядок удобнее.
p.s. использую db4o в production версии продукта, книга жалоб пока пустая.)
p.s. использую db4o в production версии продукта, книга жалоб пока пустая.)
в одной области Perst сейчас лучше, это поддержка Silverlight, в db4o пока все очень плохо.
но блин, какая же у них дикая объектная модель — root объект и индексы чего стоят.
Кстати, лицензия есть на коммерческий вариант? У них там довольно грабительские цены, если в коммерческих проетках использовать.
но блин, какая же у них дикая объектная модель — root объект и индексы чего стоят.
Кстати, лицензия есть на коммерческий вариант? У них там довольно грабительские цены, если в коммерческих проетках использовать.
НЛО прилетело и опубликовало эту надпись здесь
Включил их тест на эмуляторе с андроидом, вот что показывает:
Тест для sqlite:
Elapsed time for inserting 10000 records: 74073 milliseconds
Elapsed time for performing 20000 index searches: 117809 milliseconds
Elapsed time for iterating through 20000 records: 3771 milliseconds
Database file length before delete: 891904
Elapsed time for deleting 10000 records: 66735 milliseconds
Database file length: 8192
Тест для Perst:
Elapsed time for inserting 10000 records: 11050 milliseconds
Elapsed time for performing 20000 index searches: 9122 milliseconds
Elapsed time for iterating through 20000 records: 6274 milliseconds
Elapsed time for deleting 10000 records: 23981 milliseconds
Database file length: 2056192
Тест для sqlite:
Elapsed time for inserting 10000 records: 74073 milliseconds
Elapsed time for performing 20000 index searches: 117809 milliseconds
Elapsed time for iterating through 20000 records: 3771 milliseconds
Database file length before delete: 891904
Elapsed time for deleting 10000 records: 66735 milliseconds
Database file length: 8192
Тест для Perst:
Elapsed time for inserting 10000 records: 11050 milliseconds
Elapsed time for performing 20000 index searches: 9122 milliseconds
Elapsed time for iterating through 20000 records: 6274 milliseconds
Elapsed time for deleting 10000 records: 23981 milliseconds
Database file length: 2056192
с постраничной выборкой то как?
С этим тяжело у них.
С ходу получилось найти только метод Search(query As FullTextQuery, maxResults As Integer, timeLimit As Integer) для поиска в полнотекстовом индексе.
С ходу получилось найти только метод Search(query As FullTextQuery, maxResults As Integer, timeLimit As Integer) для поиска в полнотекстовом индексе.
Когда-то играл с Perst. Самая быстрая из встраиваемых БД, похоже. Но лицензия не всегда удобная.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Perst — высокопроизводительная ООБД