Hey guys has anyone YCer use SQlite in a production environment? For as long as I can remember I've been using MySQL, and I want to know if SQLite is a viable replacement.
SQLite is a great piece of code, but it's intended for slightly different audience than MySQL and other client-server DBs. I'd use SQLite embedded in an application to store internal data, configuration, or as some domain specific file format. This way it is an alternative to xml or inventing your own file formats. (you get SQL queries for free). Where you expect concurrent access and high loads, a client-server still suits better. Somebody correct me if I'm wrong.
Ahh I see I was looking more into using SQlite for client-server purposes. I should have rephrased my question along those lines. But YC won't let me edit my message :-)
Thanks for the alternative. I was looking at Postgres a few months back, didn't quite understand the documentation at first(although I didn't devote much time to understanding it back then) but it's worth a 2nd try.
I don't understand this MySQL FUD. Google has done some amazing things with it. Google core, YouTube for example. I wish you would explain MySQL over PostgresSQL with mention of MySQL version,etc.
It's not FUD. Most of us just like to use a database whose developers didn't have to be dragged kicking and screaming into the modern age. Remember when MySQL claimed foreign keys and relational integrity were useless?
Sure, they now support referential integrity and transactions in InnoDB, but MyISAM is still the default, because it's faster. I have no idea why you're claiming that 'Google core' (whatever that's supposed to mean) uses MySQL; the only homegrown Google project known to use MySQL is AdWords.
Anyhow, jamongkad wanted an alternative to MySQL, so I gave him one.
Yea, like they said, it isn't really for Client-Server stuff. It is a super fast file format though! If you do Mac/Cocoa development you can use SQLite for free with Core Data. By free I mean you don't have to write any custom code for serialization. :-D
Not YC, but I know of quite a large web application (in the order of a million users, but not that heavy traffic) that makes use of SQLite.
I don't think it's the right tool for every job but in this case no data is shared between users. Therefore partitioning is achieved by having an SQLite database per user.
Don't underestimate the power of SQLite (and to some extent other flat file databases like BDB, TDB or CDB for fast lookups).