Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I'm hoping that from your question, you aren't talking about using a different database system in development and production.</p> <p>If you are using a different DB in development and production, DON'T. Different database engines behave differently and will cause unexpected bugs to appear. Try to get your development system as close to production as you possibly can (hint: run it in a VM)</p> <p>SQLite and MySQL are both fine products in the right context. Understand what their capabilities are. </p> <p>SQLite:</p> <ul> <li>Runs in-process with the client application</li> <li>No network capability</li> <li>Very low query overhead because of this</li> <li>Potentially rather fast for easy queries because there is less IPC, system calls and data copying to do.</li> <li>Very limited concurrency (I think it's either one writer or multiple readers, per database file)</li> </ul> <p>MySQL:</p> <ul> <li>Far more features</li> <li>Choice of engines (InnoDB provides good features for many workloads)</li> <li>Much more control of storage, backup, restore etc</li> <li>Network-capable - which allows its use in large scale applications</li> <li>Better concurrency - the InnoDB engine has MVCC which means that readers do not block writers, nor do writers block readers. Even the old MyISAM engine has table-level locking rather than for the whole database as sqlite.</li> <li>Probably a better optimiser for complicated queries</li> </ul> <p>In short, you can't really compare them like-for-like. SQLite is quite popular as an embedded database - Firefox 3 has one inside it. </p> <p>In SQLite, you're stuck on storing your database on a local disc (or of course, network disc, if one is available). If you want to scale your web application, you'll probably have to use a server-based database such as MySQL.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload