How to

Where to get a query log file

You can figure out the location of a general query log or slow query log by reading the corresponding chapter of MySQL server documentation.

To use log files of .csv format for MySQL server version as of 5.1.x you need to look for them in corresponding folders of `mysql`.`general_log` and `mysql`.`slow_log` system tables respectively.

How to run

Just run it in command line using php cli version, pointing it to your mysql query log file:

$ php parser.php

MyProfi: mysql log profiler and analyzer

Usage: php parser.php [OPTIONS] INPUTFILE

Options:
-top N
        Output only N top queries
-type "query types"
        Ouput only statistics for the queries of given query types.
        Query types are comma separated words that queries may begin with
-sample
        Output one sample query per each query pattern to be able to use it
        with EXPLAIN query to analyze its performance
-csv
        Consideres an input file to be in csv format
        Note, that if the input file extension is .csv, it is also considered as csv
-slow
        Treats an input file as a slow query log
-sort CRITERIA
        Sort output statistics by given CRITERIA.
        Works only for slow query log format.
        Possible values of CRITERIA: qt_total | qt_avg | qt_max | lt_total | lt_avg | lt_max | rs_total
         rs_avg | rs_max | re_total | re_avg | re_max,
         where two-letter prefix stands for "Query time", "Lock time", "Rows sent", "Rows executed"
         values taken from data provided by sloq query log respectively.
         Suffix after _ character tells MyProfi to take total, maximum or average
         calculated values.

Example:
        php parser.php -csv -top 10 -type "select, update" general_log.csv