Quote from nononsense:
nitro,
I store all my collected tickdata in one table, one for each day. In order to retrieve the data by symbol in an efficient way, you should build an index on the symbol column. (The db will do this for you if you ask it to.) This slows you down a bit when generating the table, but you can write the data without the index to speed things up and generate the index later when you close the day. When you are further along, you will want to retrieve data for one symbol over several days, i.e. tables. This is no problem as it is very easy to have the program open table after table and retrieving the data for the symbol in each table. This can be set up with straightforward SQL (see further).
One more thing nitro. You probably know this, but as you said you start with db's and you specifically refer to writing in C/C++: NEVER PROGRAM ANY DB OPERATION EXPLICITELY if you can do it by writing an SQL query. db's like MySQL, Oracle, PostgreSQL etc are all SQL based. You realize tremendous speedups if you learn how to accomplish things with SQL instead of using programmed db operations. This holds for any application language. Of course you program these SQL statements as query strings in your application.
In fact, MySQL carries several SQL based maintenance/query tools for downloading on its website.
Starting out is rather hard, because it requires you to do things the way the db requires. If you programmed ad hoc without db, it looked like you were less constrained. After a while you will discover the tremendous power of a good db. You have to give it the time to grow upon you. With me, it took more than a couple of days.
Be good,
nononsense