Today Prime Mover 1.3.2 is released. This is a maintenance release targeting performance issues.
Change log
= 1.3.2 =
- Fixed: Performance issues on database export.
- Fixed: Slow archiving processes.
- Fixed: Performance problems on restoration processes.
MySQL dB Export performance improvements
Originally the MySQL dump process is using LIMIT - OFFSET
method to retrieved rows in chunks. This however will introduce serious performance problems when retrieving rows of very large tables. The improvement added is simply using the seek method strategy when retrieving rows in chunks. This is optimized for performance. For example; so even if the table has millions of rows, the query time will still be very small. It is because using seek method allows us to query using primary keys (if table uses primary keys which you should!) in the WHERE
statements which has indexing benefits.
This is tested to dump MySQL database as big as 4 GB+ using PHP 7.3+.
Removed repeated uncached queries
There is a repeated uncached queries found during database export. The fix added is simply to initialize repeating values so this does not needed to be re-computed over and over again.
Fixed performance issues in archiving/restoration
There is a problem introduced particularly with the PRO version during archiving and restoration. The issue is that the log path is constantly checked from dB for every media file being archived. This create issues since these queries are not cached. The fix is to simply do this one time and any any succeeding calls.
How much seconds faster?
Huge, though it is more significant if you have a fairly large database + site overall. In old versions, these large database are almost impossible to complete or very slow. With version 1.3.2, database dump progress is more responsive/fast.
In one testing done using average sized site (not huge). The total export time (before version 1.3.2) is taken to be 168 seconds. Exactly same site with all factors remained constant except using Prime Mover version 1.3.2 takes only 98 seconds).
Based from this data, the entire export process with version 1.3.2+ is almost twice as fast as the previous versions! (~168 /98 = 1.71)
Again this is more noticeable if your site is larger. The above data is taken with total export package size of only 340 MB.