IMHO there isn't anything that comes close to the performance of kdb+ but as you also know it will cost an arm and a leg.That idea does not work for me because I use multiple language bindings for different projects such as one in c#, and pandas dfs and c# don't efficiently parse. And we probably talk about vastly different performance requirements.
The following metric takes around 600ms across 370 million tick based bids and offers: "select avg(10000*(ask - bid)) from fx_table". This is without caching any data, without optimizing any queries, schema, or database engine. To my knowledge only kdb comes close, not even vertica. I sometimes need to run more complex queries across multiple symbols which takes a very long time with other tsdb. Going the pandas route is also too slow for my back test engine.
But back to my main question: How does adding a column as symbol identifier perform computationally as well as storage wise for any of the time series databases others use?
Unless you're into sub ms market making (which makes expensive tech a requirement anyways) it is not necessarry.
I quote across a variety of products and exchanges and I found that the bottleneck is most often not the database but the feed - handler.
If you have to get in the data, do some complex calculus just to arrive at the price/size you want to quote and then send the orders out, it makes sense to separate execution algorithm and the algorithm that calcs parameters. Execution is very dumb but extremely fast, model is very smart but slow.
Send changes in parameters from model to execution on update or only when a certain threshold is reached. This way your execution is still very fast since it's not slowed down by the permanent recalculation of your model parameters.
I found that the model parameters change a lot but I don't care about changes of the 6th digit because they don't update price/size of my orders.
Some guys go to the extreme and program the execution algorithm onto an ASIC chip and colocate that. The parameters are calculated on a different machine and sent to the chip on update.
Not quite where I want/need to go but just FYI I'm working with MongoDB and it's more than sufficient for market making unless you're getting into queue priority calculus on tier1 products...but in this case your NDA should prohibit posting on ET anyways^^