I'm building a web application in python. A part of this application is working with the data that can be described as follows:
Symbol Begin Date End Date
AAPL Jan-1-1985 Dec-27-2010
...
The data is somewhat static - it will be periodically updated, that is: new entries may be added, and the "End Date" field can be updated for all entries.
Now, the question: given the more-or-less static nature of the dataset, what is the best way of storing it and working with it? "Working" means fetching random lines, hopefully more than few times per second.
I can do it with XML file, with SQL DB or SQLite, with JSON object file and some kind of python object in memory.
What are the cons and pros of different solutions? I'll be thankful for explanations and for the edge cases (such as 'until 10times/sec XML file is the best, after that SQL DB).
Update: Thanks for all the answers! Just a smallish update: currently the set is around 3K lines. It may grow to, say, 15K lines in a year. Access pattern: updates are regular, once a day, for the complete set; so both adding lines and updating end date will be done at once. Fetching a random line is indeed by the symbol, could be done few times a second.