Zim uses plain text files and folders. You can have images, tags, link to other notes, links to the filesystem...
Maybe I am not using it with enough files for it to be a problem, but I cant say that it is slow.
I personally feel the only truly non obscure format are plain text files and it should be possible to use hierarchies, tags etc. with a combination of folders and front matter on the files itself. But I am a bit extreme in this, since I just don't like to migrate my notes yet again and have to install app after app on every device I need to access them. I was quite taken with projects like grav, that can provide functionality with just markdown files. But I haven't investigated to far on performance, especially not on mobile.
And you are right of course, that SQLite is quite preferable to most propitiatory cloud storage solutions.
Whether that approach is a good idea is a different question than it being possible.
:config sync.target 2
Then you can specify the directory where the files should go with: :config sync.2.path /path/to/synced/dir/
Currently there's no config screen to do this in the desktop app, but it's possible to enable by changing the settings directly in the SQLite database (in the "settings" table).
It's when exporting them or syncing them that all the app entities (notes, but also notebook metadata, tags, etc.) are converted to plain text files. One advantage of this is that the notes are not locked into an obscure format - it shouldn't take more than 1h to create a script that read and convert these text files to any other format.