|
Scratchy currently requires either MySQL or SQLite databases. In addition to these packages, Scratchy also requires the respective Python module for the desired database.
Notes:
MySQLMySQL is a leading open source SQL server and offers excellent performance. Currently, Scratchy's parser module is optimized to use MySQL. Recent personal benchmarks of Scratchy's parsing module using MySQL runs at about 700 Apache log lines per second. For comparison purposes, using SQLite, these numbers drop to about 200 lines/second.Since MySQL is a database server, you will need to configure and administer the server as necessary. It is very important that you create a user for yourself that has been granted full access because Scratchy needs the ability to create databases and tables. If you cannot install a MySQL server and/or you cannot create MySQL users then you will not be able to use Scratchy with the MySQL database. Please refer to MySQL Guide to Adding Users Many Linux distributions have MySQL installed. However, you should make sure that you are using v4.0.13 or newer because there is a bug in earlier versions which results in table corruption (the bug relates to the fact that Scratchy disables and enables keys to optimize performance-- in versions prior to 4.0.13 MySQL failed to handle the re-enabling of the keys properly). Once you have MySQL setup, you will need to configure Scratchy for MySQL. SQLiteSQLite is a database without the server. Therefor it is much easier to setup and lighter weight (since there is no additional server process). After installation of SQLite and PySQLite you will need to configure Scratchy for SQLite.
SummaryI've installed MySQL several times and it's pretty straight-forward. MySQL.com has solid documentation and there are several books available. In developing Scratchy I used 2 log files as benchmarks (one with 15k records, the other with 360k). Performance times were relatively the same for the small log file, however, MySQL was about 3.5x faster for the larger log file. MySQL allows for more areas of optimization than sqlite so I've been able to take advantage of some of these areas in developing Scratchy. Additionally, MySQL is more efficient than SQLite in terms of disk space. For the 360k line log file, SQLite occupied 196 MB of diskspace. MySQL stored the data in less than half (83 MB) the disk space of SQLite. |