In Tiki4 and Tiki5, various tests & optimizations were done on various real World data-sets with large trackers.
In most (all?) cases, the severe tracker performance problems (out of memory, blank page, etc) were not a Tiki problem, but a poorly configured server problem (ex.: not enough memory allocated to APC cache). This explains why some community members were reporting issues, while others with similar or even bigger trackers never had an issue.
This is very unfortunate because it lead to FUD about suitability of trackers to build projects.
The other cases (real issues) lead to various optimizations for various performance gains.
There are instances of trackers with thousands of fields (yes, thousands of columns). And the number of records (ItemID) can be quite massive. Trackers are not as fast as direct MySQL tables, but they are much faster/easier to develop/maintain. For 99% of projects, they will never see a difference performance-wise.
The bottom-line is that you will not run into performance problems on a well configured server.
If you do run into tracker-related performance problems:
- Get a shared hosting account with one of the big/popular hosts (ex.: BlueHost, Dreamhost, etc.) and try to your data there.
- If problem persists, please indicate below:
- Tiki version:
- Number of fields: (data columns)
- Number of record: (ItemID)
- Where do you see problems? (Listing?, searching?)
- What is reported on Byteocode Cache tab on tiki-admin.php?page=performance?
It's important that you get a shared hosting account somewhere.
- It will confirm if it's indeed a hosting issue (likely) or a Tiki issue (unlikely).
- These large hosts have thousands of servers and they know how to configure them.
- You can provide access to this server to other people so they can take a look (reproduce and hopefully fix any issue)
Real-World reports
Tiki 6.x report from Marc Laporte
- Tiki 6.x proposals
- Small V-server at evo.cat.io (1 gig of RAM)
- Uses APC (128Meg)
- 20 or so active users (who use all day in the context of their work)
- Apache/2.2.14 (Ubuntu)
- PHP Version 5.3.2
- MySQL client version: 5.1.41
- From PhpMyAdmin
- tiki_trackers: 12
- tiki_tracker_fields: 834
- tiki_tracker_items: 2202
- tiki_tracker_item_attachments: 1469
- tiki_tracker_item_comments: 0
- tiki_tracker_item_fields: 233001
- tiki_tracker_item_field_logs: 34720
- tiki_tracker_options: 516
The speed is fine. The only adjustment we needed to make what to install APC and set the cache (apc.shm_size) to 128 Megs.
Functional ideas to improve tracker performances
- a lot of people use TRACKER and TRACKEITEMFIELD to have some input fields and some output fields on the same page (occurs very oftern when an item is filled on many pages. THe other pages repeat the identification of the item at the top. TRACKERITEMFIELD if expensive TODO: have a modifier {$f_xxx|display}