--user USER --password --host ADDRESS --port PORT --socket SOCKET --no-mycnf --help (-?) |
These options mimic most standard applications. --password
can take the password on the command line like "--password FOO". Using --password
alone without giving a password on the command line causes mysqlidxchk to
prompt for a password. --no-mycnf makes mysqlidxchk not read ~/.my.cnf which
it does by default otherwise. --user and --password always override values
from ~/.my.cnf.
|
--debug |
Using --debug causes mysqlidxchk to print a lot of extra debugging
information about what it is doing internally. In release versions of
mysqlidxchk, debugging information does not include log parsing information.
For more information about release verses debug versions of mysqlidxchk,
read mysqlidxchk Bugs & Problems.
|
--general (-g) LOG --slow (-s) LOG --raw (-r) LOG |
mysqlidxchk can read and combine multiple MySQL slow and general logs,
as well as "raw" logs. Raw logs are simply files with ;\n (semi-colon
new-line) terminated SQL statements. At least one log file must be given.
Multiple log files can be specified like: "-g log1,log2,log3 -s slow_queries.log".
By default, only SELECT, UPDATE and USE db statements are read; all other statements are discarded. General logs and raw logs are more reliable than slow logs because general logs always contain an equivalent "USE db" statement, and a "USE db" statement can and should be added to raw logs. Slow logs, however, may or may not contain a "USE db." If not, mysqlidxchk tries to discover which database a query belongs to. The database discovery process is discussed in the Guide To Using mysqlidxchk. |
--grep P |
grep and save only those statements which match Perl regex pattern P.
|
--databases (-D) D |
By default mysqlidxchk uses and reports on every index in every table
in every database. However, there are times when you may wish to only
consider a limited number of databases. The --databases option causes
mysqlidxchk to only report on the given databases D (where D is a
comma-separated list of database names without any spaces). Queries
which use databases not given in D are silently discarded.
|
--show-used (-su) |
By default mysqlidxchk only reports unused indexes. --show-used causes
mysqlidxchk to show all indexes both unused and used. Used indexes
have a number in parenthesis beside them, like (7), where '7' is the
number of unique queries that use that index.
|
--ignore-update (-iu) |
mysqlidxchk transforms UPDATE statements into SELECT statements
by dropping the SET clause and adding "SELECT * FROM". For example,
"UPDATE table SET col = 1 WHERE something IS NULL" becomes
"SELECT * FROM table WHERE something IS NULL". --ignore-update
causes mysqlidxchk to silently discard all UPDATE statements.
|
--no-db-discovery (-ndd) |
If a query does not have a database, mysqlidxchk attempts to
discover the query's appropriate database. --no-db-discovery
prevents mysqlidxchk from this attempt. Queries without
databases will not be EXPLAINed. The database discovery process is discussed in the Guide To Using mysqlidxchk. |
--no-discovery-report (-ndr) |
While attempting to discover databases for queries without
databases, mysqlidxchk prints extra information about its
successes and failures. --no-discovery-report suppress
this extra information. Database discovery will still
be attempted with this option.
|