[pmwiki-users] mySQL backend and sort of an OT
Petko Yotov
5ko at 5ko.fr
Fri Jan 13 18:26:31 CST 2012
On Friday 13 January 2012 04:37:02, Carlos AB wrote :
> My question is that if sqlite plugin would take care of this amount of
> pages and users? I can't quantify users for now but I plan to have
> plenty of those :) .
Unlikely. An SQLite database is a single file on your server. It may not work
well with many editors saving pages at the same millisecond.
Moreover, the most "CPU- and memory- expensive" part of pagelists and
searches[1] in the current implementation are the need to sort (order) the
list (especially if you use order=$:PTV) and to convert the template snippets
into HTML.
The SQLite recipe is a PageStore class, it mostly just stores the pages and
their history into one file in wiki.d, instead of the many PmWiki files on the
filesystem.
[1] A search in PmWiki is actually a pagelist, it works the same way.
> * A mysql backend plugin would solve the problems concerning amount of
> content, user base and speed?
It may solve the problem of "many editors saving pages at the same
millisecond" but to solve the other problems, special optimizations need to be
made, one for listing and ordering huge numbers of pages -- use the database
engine for sorting instead of PmWiki --, and another one for indexing and
searching into these pages. BTW, to search among 2M pages, a dedicated program
or server may be needed.
There is also the DataQuery recipe. I haven't reviewed it, but it may be
usable or easier to adapt:
http://www.pmwiki.org/wiki/Cookbook/DataQuery
> ** if it would be too hard for a noob such as I, to modify sqlite
> recipe to be a mysql one?
Yes, this PageStore class is too SQLite-specific, it will be easier to have a
clean start based on the original PageStore class in pmwiki.php.
> Even so preferring PmWiki as a wiki solution for my project, I dare to
> ask if it is the best choice for it, _with_ the yet non-existant mysql
> backend, more for the pretense performance boost provided by it.Please
> don't be ofended by the question.
PmWiki is a tool for collaborative creation and maintenance of websites. It is
more focused on the goal (websites) than on the process (community, editor
accountability). For the latter, I could suggest MediaWiki, or if you need
stuff like PageTextVariables, a Semantic wiki:
https://en.wikipedia.org/wiki/Semantic_wiki
Petko
More information about the pmwiki-users
mailing list