I am developing a logging database, the ids of the components being logged in this case are not determined by the database itself, but by the system that sends the report. The system id is a unique varchar, and the component’s id is determined by the system (in some faraway location), so uniqueness is guaranteed when the component’s primary key is system_id + component_id.
What I’m wondering is if this approach is going to be efficient. I could use auto incremented integers as the id, but that would mean I would have to do select operations before inserting so that I can get this generated id instead of using the already known string id that the system provides.
The database is going to be small scale, no more than a few dozen systems, each with a few dozen components, and and maybe some thousands of component updates (another table). Old updates will be periodically dumped into a file and removed from the database, so it won’t ever get “big.”
Any recomendations?
I’m sure you’ll find that tables of several million rows will perform fine with varchar() keys.
It’s easy enough to test. Just import your data.