Poll:Preferred Data Storage?

Oke So I have the following problem. I want to make a plugin, But I totally screwed up the design to patch it back to SQL. So my question is what like you server owners/plugin devs the most? So I can know if I just reset my design and start over :crying_cat_face:.

  • SQL (Server)
  • SQLlite (local storage)
  • FlatFile (using serialization)
  • PlainText (HOCON,JSON,… )

0 voters

(Offtopic: Is the Poll: required to make a poll?)

HOCON, JSON, XML, etc. are almost always used as for serializing data…

It really depends on the amount and what kind of data that is stored. If you have a lot of data that needs to be stored than I prefer an actual database, but if it is small amount of data, then sqlite/json files work fine.

It also depends if you expect that data to be editable outside of the game. If it needs to be editable, then going for something human readable like json is advised.


If it’s configuration, store it in YAML/HOCON. If it’s data, PostgreSQL.

Easy and small:
Sqlite though it’s not so safe - but it is easy to use and has no (or not much) dependencies

If we are talking about realy big DB’s:
MySQL - PostgreSQL - SQL ( Server )

Configs: Yaml (common) or a list whit name of configuration options (easy to build yourself)

Sql is only good for data-heavy Plugins for big servers (logblock, plots).
For small servers without sql, i prefer a config file.

To clear up confusion, where talking about a crap ton of logs. So yeah much data.

In that case definitely a databse

i think, mysql is really easy to use.

  • can use with php (websites), java (plugins) …
  • management tool (phpmyadmin)
  • simple to install / preinstalled on most servers
  • free for non root-server users (nitrado …)

Intended for user consumption or machine querying?

MySQL is not even close to an option until it supports transactional DDL, otherwise there is simply no way to guarantee that an upgrade won’t fail and wreck your database.

MySQL is useful if you either have

  1. Super large DB
  2. Want website integration (like online leaderboard)
  3. Want data sharing between two servers

SQLlite which I find easiest can be used for most applications which need basic data storage

  1. Persistance
  2. Stat saving / Basic Data storage

A YML file is for configs and configs only.

I have tried serialization before but it gets too messy and doesn’t have nice things like SQL does so that did not last long to say the least :stuck_out_tongue:

Or not use mysql at all, but use one of the various other (free) database engines out there that are better, stricter, etc. like postgresql.

Change my vote to SQL storage, given:

We can build a automatic backup tool for databases.

Seems Ill have to go learn using java with SQL. Does anyone knows a good way to do unit test with them? As I don’t want to setup an SQL server on my build server for it.


But why go through all this trouble when it’s just caused by the database server not being able to do its one job?

H2DB can run in both client/server, file-backed, or in-memory modes. It’s not perfect by any means, but you could use it as a test backend for a ‘quick’ mode while your CI tests both H2 and the proper engine.

Well what about something like postgresql… I see that as a valid alternative to MySQL?

MySQL for Data and Configs. MySQL-Config (DB, DB-User and DB-Password) in a yml-file.

They are not going to use YML, though.