Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 31149
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 10, 20262026-05-10T13:33:33+00:00 2026-05-10T13:33:33+00:00

I’m currently trying out db4o (the java version) and I pretty much like what

  • 0

I’m currently trying out db4o (the java version) and I pretty much like what I see. But I cannot help wondering how it does perform in a real live (web-)environment. Does anyone have any experiences (good or bad) to share about running db4o?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-10T13:33:34+00:00Added an answer on May 10, 2026 at 1:33 pm

    We run DB40 .NET version in a large client/server project.

    Our experiences is that you can potentially get much better performance than typical relational databases.

    However, you really have to tweak your objects to get this kind of performance. For example, if you’ve got a list containing a lot of objects, DB4O activation of these lists is slow. There are a number of ways to get around this problem, for example, by inverting the relationship.

    Another pain is activation. When you retrieve or delete an object from DB4O, by default it will activate the whole object tree. For example, loading a Foo will load Foo.Bar.Baz.Bat, etc until there’s nothing left to load. While this is nice from a programming standpoint, performance will slow down the more nesting in your objects. To improve performance, you can tell DB4O how many levels deep to activate. This is time-consuming to do if you’ve got a lot of objects.

    Another area of pain was text searching. DB4O’s text searching is far, far slower than SQL full text indexing. (They’ll tell you this outright on their site.) The good news is, it’s easy to setup a text searching engine on top of DB4O. On our project, we’ve hooked up Lucene.NET to index the text fields we want.

    Some APIs don’t seem to work, such as the GetField APIs useful in applying database upgrades. (For example, you’ve renamed a property and you want to upgrade your existing objects in the database, you need to use these ‘reflection’ APIs to find objects in the database. Other APIs, such as the [Index] attribute don’t work in the stable 6.4 version, and you must instead specify indexes using the Configure().Index(‘someField’), which is not strongly typed.

    We’ve witnessed performance degrade the larger your database. We have a 1GB database right now and things are still fast, but not nearly as fast as when we started with a tiny database.

    We’ve found another issue where Db4O.GetByID will close the database if the ID doesn’t exist anymore in the database.

    We’ve found the Native Query syntax (the most natural, language-integrated syntax for queries) is far, far slower than the less-friendly SODA queries. So instead of typing:

    // C# syntax for 'Find all MyFoos with Bar == 23'. // (Note the Java syntax is more verbose using the Predicate class.) IList<MyFoo> results = db4o.Query<MyFoo>(input => input.Bar == 23); 

    Instead of that nice query code, you have to an ugly SODA query which is string-based and not strongly-typed.

    For .NET folks, they’ve recently introduced a LINQ-to-DB4O provider, which provides for the best syntax yet. However, it’s yet to be seen whether performance will be up-to-par with the ugly SODA queries.

    DB4O support has been decent: we’ve talked to them on the phone a number of times and have received helpful info. Their user forums are next to worthless, however, almost all questions go unanswered. Their JIRA bug tracker receives a lot of attention, so if you’ve got a nagging bug, file it on JIRA on it often will get fixed. (We’ve had 2 bugs that have been fixed, and another one that got patched in a half-assed way.)

    If all this hasn’t scared you off, let me say that we’re very happy with DB4O, despite the problems we’ve encountered. The performance we’ve got has blown away some O/RM frameworks we tried. I recommend it.

    update July 2015 Keep in mind, this answer was written back in 2008. While I appreciate the upvotes, the world has changed since then, and this information may not be as reliable as it was when it was written.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm trying to decode HTML entries from here NYTimes.com and I cannot figure out
That's pretty much it. I'm using Nokogiri to scrape a web page what has
I have a string like this: La Torre Eiffel paragonata all&#8217;Everest What PHP function
I am trying to render a haml file in a javascript response like so:
Seemingly simple, but I cannot find anything relevant on the web. What is the
link Im having trouble converting the html entites into html characters, (&# 8217;) i
I want to count how many characters a certain string has in PHP, but
I would like to count the length of a string with PHP. The string
For some reason, after submitting a string like this Jack’s Spindle from a text
I am trying to understand how to use SyndicationItem to display feed which is

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.