I'm noticing that the length of table names affects performance during
creation of those tables. Attached is a code example that reproduces
the problem.

To compile the example:
gcc main.c sqlite3.c -O3 -DLONG_NAMES -DNDEBUG
gcc main.c sqlite3.c -O3 -DNDEBUG

On my machine, when using relatively short table names like
`TABLE_{table #}`, creation of a database with 10,000 tables takes
approximately 14 seconds. These table names vary from 7 to a max of 11
characters.

When using relatively long table names like `TABLE_{table #}_{some
unique identifying name that adds 120 or so characters}`, creation of
a database with 10,000 tables takes approximately 60 seconds.

Creating the database with long table names took over 4 times longer!

Why is this the case? Is this expected behavior or a bug?

And since creating tables with long names negatively affects
performance, this leads me to wonder if query performance on such a
database would also be negatively affected.

Thoughts?

P.S.: I'm using the latest amalgamated version of sqlite (3.8). There
is also a Stack Overflow question covering this topic here:
http://stackoverflow.com/questions/18603123/table-name-length-in-sqlite-affects-performance-why

-Jared
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to