I’m considering using Discourse as the backend for my website and app, but I haven’t seen any documentation on its scaling limits.
What’s the maximum number of categories we can have? Is it 1000? 10,000? 100,000?
I plan to heavily use the API and create a custom frontend for both web and mobile. Part of this is programmatically creating a new Category whenever a user wants to. So it’s more of a backend systems question than the UI.
For example, will the /categories.json endpoint scale? It doesn’t seem paginated.
Thanks @sam! Follow up question – what would the approximate limits be for:
the number of tags
the number of topics in a category
For example, can I have a few million unique tags, as well as a few million topics within a single category?
The tags, topic_tags, and topics tables don’t appear to be sharded, which should work for a few million rows, but I haven’t looked into the queries themselves, nor any UI that could potentially break.
Even with optimal indexing, query speeds will at some point take “too long”. What that is will vary from person to person.
Then there’s Ruby, Ember, bandwidth and browser limits. Feel free to research, but I wouldn’t worry about those.
I think that long before any software limits are reached “sane” limits will have already been passed. And what that would be will vary from person to person and how they interact with the information.
tl;dr You will break your users long before you break any code.
Personally I never subscribe to a site that has 2500 categories.
Virtually you can create all the categories you want but your site will only be confusing and not navigable.
Note that an official answer has already been given to your question and also an alternative to using categories.
The problem of categories in the first place is the problem of transparency and navigation for users. Working previously on the catalogue dmoz.org and making categories for Russian directories, we are faced with the fact that with a large number of categories, problems arise in users. A large number of categories, it’s like there are no more categories. They become unnecessary, impossible to use. Nobody understands the structure of the site, including those who did it. I think that’s the problem.
Navigation should be navigation, and if it loses its functions, it is sad.
Abgesehen von UI-Überlegungen bin ich neugierig, was passiert, wenn man den Bereich von über 1000 Kategorien erreicht. Werden die Antworten im Durchschnitt nur etwas länger dauern, oder gibt es katastrophale Folgen? Lässt sich das Problem durch bessere Hardware lösen?
Wie der OP arbeite ich an einem Projekt, das leicht Tausende von Kategorien haben könnte. Es nutzt stark gruppenbasierte Berechtigungen, und ein einzelner Benutzer kann möglicherweise nur eine Handvoll sehen (deshalb kann ich keine Tags verwenden). Daher mache ich mir weniger Sorgen, dass die UI überwältigend wirkt, aber ich möchte wissen, wo der Flaschenhals in diesem höheren Bereich liegt.
Ehrlich gesagt wahrscheinlich nichts Schlimmes, es sei denn, du bist Administrator und hast Zugriff auf 1000+ Kategorien. In diesem Fall würden wir dir auf deiner ersten Seite alle einzelnen Kategorie-JSONs liefern, und die Kategorien-Seite würde sowohl serverseitig als auch clientseitig langsam werden.
In Bezug darauf:
Wenn ich Hunderte bis Tausende von Kategorien habe, gibt es dann eine Möglichkeit, die Anzahl der Suchergebnisse zu begrenzen?
Mein Problem: Aufgrund der großen Anzahl von Kategorien führt das Klicken auf das Dropdown-Menü beim Erstellen eines neuen Themas oder das Suchen nach Kategorien beim Abonnieren zu einer langen Verzögerung (mehrere Sekunden).
Ich weiß, dass wir in solchen Szenarien die Option haben, die Anzahl der Ergebnisse auf Tags zu beschränken. Gibt es diese Möglichkeit auch für Kategorien, oder können wir sie einrichten?
ich habe gerade für dich in der Datenbank nachgeschaut, und es gibt keine Einstellungen zur Einschränkung von Kategorien (für Suchen) in der Datenbank.
Im Benutzerinterface sind jedoch einige Einschränkungen verfügbar (wie du weißt):
Es sieht also so aus, als müsstest du ein Plugin erstellen, um zusätzliche Funktionen hinzuzufügen, mit denen Suchergebnisse basierend auf Kategorien und verwandten Kriterien eingeschränkt werden können.
Ich habe eine Website mit über 500 Kategorien (wenn ich mich recht erinnere). Ich glaube, sie lief auf einem CPU-optimierten Droplet für 80 $ im Monat ganz gut, bei etwa 250.000 Seitenaufrufen pro Monat.
Ich habe über 300 (mit vielen Unterkategorien), aber nur der Admin sieht so viele.
Du kannst in der Dropdown-Liste suchen, musst aber vorher den Namen der Kategorie kennen, in der du posten möchtest.
Das eigentliche „Problem
Ich interessiere mich auch dafür. Meine Community besteht aus Amateurfunkern, und es gibt Tausende von kleinen lokalen Vereinen. Ich würde jedem lokalen Verein seine eigene private Gruppe anbieten wollen, um potenziell Vereinsangelegenheiten zu besprechen.
Es würde wahrscheinlich lange dauern, bis ich irgendwelche Limits erreiche. Ich stelle mir vor, dass ich bei voller Kapazität wahrscheinlich ein Maximum von etwa 500 Gruppen erreichen würde, jede mit ihrer eigenen Kategorie.
Diese Gruppen würden nur für Benutzer angezeigt, die über die API zum Verein hinzugefügt wurden.
Sind also (größtenteils) alle Kategorien privat und nur für Gruppenmitglieder verfügbar? Ich bin mir nicht sicher, aber ich glaube, das löst viele der Leistungsprobleme, und wenn Sie denken, dass Sie bei etwa 500 bleiben, sind Sie vielleicht dabei, auch wenn ich falsch liege. Ich denke, etwa 200 ist das empfohlene Maximum, aber ich habe eine Website mit 200 oder 300. Und Sie erhalten eine Warnung, sodass Sie sie in mehrere Instanzen aufteilen könnten, wenn Ihre Zahlen zu groß werden.