Re: Scalability with large numbers of tables
От | Florian G. Pflug |
---|---|
Тема | Re: Scalability with large numbers of tables |
Дата | |
Msg-id | 4219E9E3.6050408@phlo.org обсуждение исходный текст |
Ответ на | Re: Scalability with large numbers of tables (Christopher Browne <cbbrowne@acm.org>) |
Список | pgsql-general |
Christopher Browne wrote: > Oops! spam_from_postgresql_general@chezphil.org (Phil Endecott) was seen spray-painting on a wall: >>I have a single database with one schema per user. Each user has a >>handful of tables, but there are lots of users, so in total the >>database has thousands of tables. > If you've got tens of thousands of relations, the tab completion code > has to draw the whole list of relations from pg_class into memory and > "marshal" it into a form usable by GNU Readline. THAT is what you're > seeing slow down. As the number of tables, n, grows, the cost of that > grows with order of complexity O(n). > > Actual queries on actual tables won't be slow; they will look up > relation names directly in pg_class, and presumably go from there to > get the file name(s) on the filesystem, which each represent > operations of complexity of order O(n log n). Which remains fast even > if there are millions of tables. I guess you mean O(log n) in the second paragraph (Which would imply that there is an index on relname for pg_class). If the complexity was O(n log n), it would be more complex/slower than an O(n) algorithm, and therefore slower (or, at least, it would scale worse) than the tab-completion code ;-) greetings, Florian Pflug
Вложения
В списке pgsql-general по дате отправления: