Derby or MySQL or…?

前端 未结 2 422
南方客
南方客 2021-02-05 10:35

For what type of requirements would you choose Apache Derby (or Java DB) over MySQL (or vice versa)? I looked around and people just compare the two but no one talks about when

2条回答
  •  闹比i
    闹比i (楼主)
    2021-02-05 10:53

    Why are Derby and MySQL the only RDMBS you consider? If you say Derby, you should check out HSQLDB, H2, SQLite as well. If you say MySQL, you should check out Postgres as well (which has a lot more features).

    This is just to name some free RDBMS. Of course, as Charlie already put it, there are lots of others and lots of reasons to go either way. Check out this (IMO excellent) comparison page on Wikipedia, where you will find benefits and limitations of any RDBMS:

    http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems

    As far as your requirement about your webapp being "downloadable" is concerned, of course you can embed an RDBMS (any of Derby, H2, HSQLDB) in your webapp. But you can also just make your MySQL or Postgres or whatever integration configurable and give your downloaders instructions about how to set up your webapp themselves. After all, when you use a container-configured DataSource for your webapp, this configuration can be done easily.

    Now, even if you think it might be easier for you to develop your webapp with an embedded database, you should always think one step ahead. Questions like:

    • Will you be able to connect to that database directly, in order correct data inconsistencies easily? (It will happen to all of us)
    • Will you be able to alter the schema easily?
    • Will you be able to backup your data easily?
    • etc etc... there are more maintenance questions, too

    Since your comments suggest that your data is increasing over time, and it should persist, I wouldn't choose an embedded version, but keep the data separate from the application. Note that this doesn't exclude Derby from your application design. It just means you'd have to run Derby as a standalone server.

提交回复
热议问题