Author: mcbrown
Date: 2009-09-21 15:52:41 +0200 (Mon, 21 Sep 2009)
New Revision: 16698
Log:
Adding the Advisor/Graph reference
Added:
trunk/mysql-monitor-common/mem-reference-advgraph.xml
Modified:
trunk/mysql-monitor-common/mem-reference-core.xml
Added: trunk/mysql-monitor-common/mem-reference-advgraph.xml
===================================================================
--- trunk/mysql-monitor-common/mem-reference-advgraph.xml (rev 0)
+++ trunk/mysql-monitor-common/mem-reference-advgraph.xml 2009-09-21 13:52:41 UTC (rev 16698)
Changed blocks: 1, Lines Added: 5942, Lines Deleted: 0; 198213 bytes
@@ -0,0 +1,5942 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
+[
+<!ENTITY % all.entities SYSTEM "all-entities.ent">
+%all.entities;
+]>
+<section id="mem-reference-advgraph">
+
+ <title>Advisor/Graph Reference</title>
+
+ <para>
+ <emphasis role="bold">Basic</emphasis>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Advisors</emphasis>
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_agent_host_time_out_of_sync">Agent
+ Host Time Out of Sync Relative to Dashboard</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_cpu_io_usage_excessive">CPU
+ I/O Usage Excessive</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_cpu_usage_excessive">CPU
+ Usage Excessive</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_connection_usage_excessive">Connection
+ Usage Excessive</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_lock_contention_excessive">Lock
+ Contention Excessive</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_key_cache_has_suboptimal_hit_rate">MyISAM
+ Key Cache Has Sub-Optimal Hit Rate</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_agent_not_communicating_with_mysqld">MySQL
+ Agent Not Communicating With Database Server</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_agent_not_reachable">MySQL
+ Agent Not Reachable</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_mysqld_not_reachable">MySQL
+ Server Not Reachable</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_query_cache_has_suboptimal_hit_rate">Query
+ Cache Has Sub-Optimal Hit Rate</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_ram_usage_excessive">RAM
+ Usage Excessive</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_table_scans_excessive">Table
+ Scans Excessive</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_temp_tables_to_disk_ratio_excessive">Temporary
+ Tables To Disk Ratio Excessive</link>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Graphs</emphasis>
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_cpu_utilization">CPU
+ Utilization</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_connections">Connections</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_database_activity">Database
+ Activity</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_hit_ratios">Hit Ratios</link>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </listitem>
+
+ </itemizedlist>
+ </para>
+
+ <para>
+ <emphasis role="bold">Silver</emphasis>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Advisors</emphasis>
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_32_bit_binary_running_on_64_bit_amd_intel_system">32-Bit
+ Binary Running on 64-Bit AMD Or Intel System</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_account_has_broad_host_specifier">Account
+ Has An Overly Broad Host Specifier</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_account_has_global_privileges">Account
+ Has Global Privileges</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_account_with_old_password_hash">Account
+ Has Old Insecure Password Hash</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_account_has_strong_mysql_privileges">Account
+ Has Strong MySQL Privileges</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_user_connections_have_failed">Attempted
+ Connections To The Server Have Failed</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_binary_logging_is_limited">Binary
+ Logging Is Limited</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_binary_logging_not_enabled">Binary
+ Logging Not Enabled</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_bin_log_not_synced_at_each_write">Binary
+ Logging Not Synchronized To Disk At Each Write</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_upgrade_to_fix_bug_25578">CREATE
+ TABLE LIKE Does Not Require Any Privileges On Source
+ Table</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_db_not_portable_due_to_identifier_case_sensitivity">Database
+ May Not Be Portable Due To Identifier Case
+ Sensitivity</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_upgrade_to_fix_bug_15828">Date-Handling
+ Bugs Can Crash The Server</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_default_value_being_used_for_max_prepared_stmt_count">Default
+ Value Being Used For max_prepared_stmt_count</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_upgrade_to_fix_bug_27294">Disabling
+ Next-Key Locking In InnoDB Can Crash The Server</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_event_scheduler_disabled">Event
+ Scheduler Disabled</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_too_many_aborted_connection_attempts">Excessive
+ Percentage Of Attempted Connections To The Server Have
+ Failed</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_general_query_log_enabled">General
+ Query Log Enabled</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_upgrade_to_fix_bug_28478">Improper
+ key_cache_block_size Setting Can Corrupt MyISAM
+ Tables</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_in_memory_temp_table_size_limited_by_max_heap_table_size">In-Memory
+ Temporary Table Size Limited By Maximum Heap Table
+ Size</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_incorrect_innodb_flush_method_on_windows">Incorrect
+ InnoDB Flush Method On Windows</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_innoDB_tablespace_cannot_automatically_expand">InnoDB
+ Tablespace Cannot Automatically Expand</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_innodb_redo_logs_not_sized_correctly">InnoDB
+ Transaction Logs Not Sized Correctly</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_insecure_password_authentication_option_is_enabled">Insecure
+ Password Authentication Option Is Enabled</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_insecure_password_generation_option_is_enabled">Insecure
+ Password Generation Option Is Enabled</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_key_buffer_size_greater_than_4gb">Key
+ Buffer Size Greater Than 4 GB</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_local_option_of_load_data_enabled">LOCAL
+ Option Of LOAD DATA Statement Is Enabled</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_upgrade_to_fix_bug_28984">Malformed
+ Password Packet In Connection Protocol Can Crash
+ Server</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_max_connection_limit_nearing">Maximum
+ Connection Limit Nearing Or Reached</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_upgrade_to_fix_bug_15756">Missing
+ Security Improvements In GRANT Options</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_upgrade_to_fix_bug_8378">Multi-Byte
+ Encoding Processing Can Lead To SQL Injection</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_myisam_repair_threads_not_equal_to_one">Multiple
+ Threads Used When Repairing MyISAM Tables</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_agent_mem_usage_excessive">MySQL
+ Agent Memory Usage Excessive</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_mysql_server_has_been_restarted">MySQL
+ Server Has Been Restarted</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_next_key_locking_disabled_for_innodb_but_binary_logging_enabled">Next-Key
+ Locking Disabled For InnoDB But Binary Logging
+ Enabled</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_upgrade_to_fix_bug_16365">No
+ Limit On Total Number Of Prepared Statements</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_no_value_set_for_myisam_recover">No
+ Value Set For myisam-recover</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_non_authorized_user_has_sql_privileges_on_all_databases">Non-Authorized
+ User Has DB, Table, Or Index Privileges On All
+ Databases</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_non_authorized_user_has_grant_privileges_on_all_dbs">Non-Authorized
+ User Has GRANT Privileges On All Databases</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_non_authorized_user_has_server_admin_privileges">Non-Authorized
+ User Has Server Admin Privileges</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_query_cache_not_available">Query
+ Cache Not Available</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_root_account_can_login_remotely">Root
+ Account Can Login Remotely</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_root_account_without_password">Root
+ Account Without Password</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_upgrade_to_fix_bug_37426">Row-based
+ Replication Broken For UTF8 CHAR Columns Longer Than 85
+ Characters</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_security_alterations_user_privileges_granted">Security
+ Alterations Detected: User Privileges Granted</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_security_alterations_user_privileges_revoked">Security
+ Alterations Detected: User Privileges Revoked</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_security_alterations_detected">Security
+ Alterations Have Been Detected</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_upgrade_to_fix_bug_31611">Security
+ Risk with BINLOG statement</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_server_has_test_database">Server
+ Contains Default "test" Database</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_server_has_accounts_without_password">Server
+ Has Accounts Without A Password</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_server_has_anonymous_account">Server
+ Has Anonymous Accounts</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_server_has_root_account">Server
+ Includes A Root User Account</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_upgrade_to_fix_bug_18630">Stored
+ Routine Runs In Definer''s Rather Than Caller''s Security
+ Context</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_symlinks_are_enabled">Symlinks
+ Are Enabled</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_table_cache_too_low_for_startup">Table
+ Cache Set Too Low For Startup</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_upgrade_to_fix_bug_27878">Use
+ Of View Overrides Column Update Privileges On Underlying
+ Table</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_upgrade_to_fix_bug_27337">User
+ Can Gain Privileges By Running Stored Routine Declared
+ Using SQL SECURITY INVOKER</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_user_has_rights_to_database_that_does_not_exist">User
+ Has Rights To Database That Does Not Exist</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_upgrade_to_fix_bug_23675">User
+ With Only ALTER Privilege On Partitioned Table Can Obtain
+ SELECT Privilege Information</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_users_can_view_all_databases">Users
+ Can View All Databases On MySQL Server</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_xa_distributed_tx_support_enabled">XA
+ Distributed Transaction Support Enabled For InnoDB</link>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Graphs</emphasis>
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_connections_aborted">Connections
+ - Aborted</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_connections_max">Connections -
+ Maximum</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_innodb_row_details">InnoDB Row
+ Details</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_kbytes_in_out">KBytes
+ In/Out</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_load_average">Load
+ Average</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_agent_lua_mem_usage">Memory
+ Usage - Agent</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_ram_usage">Memory Usage - OS
+ Resident</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_row_accesses">Row
+ Accesses</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_row_writes">Row Writes</link>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </listitem>
+
+ </itemizedlist>
+ </para>
+
+ <para>
+ <emphasis role="bold">Gold</emphasis>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Advisors</emphasis>
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_binary_log_file_count_exceeds_specified_limit">Binary
+ Log File Count Exceeds Specified Limit</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_binary_log_space_exceeds_specified_limit">Binary
+ Log Space Exceeds Specified Limit</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_insert_on_duplicate_key_update_bug_may_break_replication">INSERT
+ ON DUPLICATE KEY UPDATE Bug May Break Replication</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_innodb_buffer_cache_hit_rate_not_optimal">InnoDB
+ Buffer Cache Has Sub-Optimal Hit Rate</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_key_buffer_size_not_optimal_for_key_cache">Key
+ Buffer Size May Not Be Optimal For Key Cache</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_key_buffer_size_not_optimal_for_system_ram">Key
+ Buffer Size May Not Be Optimal For System RAM</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_query_cache_potentially_undersized">Query
+ Cache Potentially Undersized</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slave_detection_of_network_outages_too_high">Slave
+ Detection Of Network Outages Too High</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slave_error_unknown_or_incorrect_time_zone">Slave
+ Error: Unknown or Incorrect Time Zone</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slave_execution_position_too_far_behind_read_position">Slave
+ Execution Position Too Far Behind Read Position</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slave_has_been_stopped">Slave
+ Has Been Stopped</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slave_has_experienced_a_replication_error">Slave
+ Has Experienced A Replication Error</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slave_has_accounts_with_inappropriate_privileges">Slave
+ Has Login Accounts With Inappropriate Privileges</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slave_has_problem_communicating_with_master">Slave
+ Has Problem Communicating With Master</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slave_has_stopped_replicating">Slave
+ Has Stopped Replicating</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slave_io_thread_not_running">Slave
+ I/O Thread Not Running</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slave_not_configured_as_read_only">Slave
+ Not Configured As Read Only</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slave_relay_log_space_is_very_large">Slave
+ Relay Log Space Is Very Large</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slave_relay_logs_not_automatically_purged">Slave
+ Relay Logs Not Automatically Purged</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slave_sql_thread_not_running">Slave
+ SQL Thread Not Running</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slave_sql_thread_reading_from_older_relay_log_than_io_thread">Slave
+ SQL Thread Reading From Older Relay Log Than I/O
+ Thread</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slave_too_far_behind_master">Slave
+ Too Far Behind Master</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slave_waiting_to_free_relay_log_space">Slave
+ Waiting To Free Relay Log Space</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slave_without_replication_slave_account">Slave
+ Without REPLICATION SLAVE Accounts</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_table_cache_not_optimal">Table
+ Cache Not Optimal</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_thread_cache_size_not_optimal">Thread
+ Cache Size May Not Be Optimal</link>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Graphs</emphasis>
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_thread_cache">Connections -
+ Cache</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_innodb_adaptive_hash_memory">InnoDB
+ Adaptive Hash Index Memory</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_innodb_adaptive_hash_searches">InnoDB
+ Adaptive Hash Index Searches</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_innodb_adaptive_hash_cells">InnoDB
+ Adaptive Hash Index Usage</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_innodb_buffer_pool">InnoDB
+ Buffer Pool</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_swap_usage">Memory Usage - OS
+ Virtual</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_opened_tables">Opened
+ Tables</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_query_cache_blocks">Query
+ Cache Blocks</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_query_cache_memory">Query
+ Cache Memory</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_slave_seconds_behind">Replication
+ Delay</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_temporary_tables">Temporary
+ Tables</link>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </listitem>
+
+ </itemizedlist>
+ </para>
+
+ <para>
+ <emphasis role="bold">Platinum</emphasis>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Advisors</emphasis>
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_auto_increment_limit_nearly_reached">AUTO_INCREMENT
+ Field Limit Nearly Reached</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_bin_log_use_exceeding_disk_cache_mem_limits">Binary
+ Log Usage Exceeding Disk Cache Memory Limits</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_data_flushed_to_disk_after_each_sql_stmt">Data
+ Flushed To Disk After Each SQL Statement</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_excessive_disk_temp_tables">Excessive
+ Disk Temporary Table Usage Detected</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_excessive_number_of_locked_processes">Excessive
+ Number of Locked Processes</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_excessive_number_of_long_running_processes">Excessive
+ Number of Long Running Processes</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_excessive_number_of_long_running_processes_locked">Excessive
+ Number of Long Running Processes Locked</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_flush_time_set_to_non-zero_value">Flush
+ Time Set To Non-Zero Value</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_indexes_not_being_used_efficiently">Indexes
+ Not Being Used Efficiently</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_innodb_buffer_pool_writes_may_be_performance_bottleneck">InnoDB
+ Buffer Pool Writes May Be Performance Bottleneck</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_innodb_doublewrite_buffer_enabled">InnoDB
+ Doublewrite Buffer Enabled</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_innodb_flush_method_may_not_be_optimal">InnoDB
+ Flush Method May Not Be Optimal</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_innodb_log_buffer_flushed_to_disk_after_each_trx">InnoDB
+ Log Buffer Flushed To Disk After Each Transaction</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_log_waits_may_be_performance_bottleneck">InnoDB
+ Log Waits May Be Performance Bottleneck</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_myisam_concurrent_insert_setting_not_optimal">MyISAM
+ Concurrent Insert Setting May Not Be Optimal</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_myisam_indexes_found_with_no_statistics">MyISAM
+ Indexes Found with No Statistics</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_database_has_been_altered">Object
+ Changed: Database Has Been Altered</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_database_has_been_created">Object
+ Changed: Database Has Been Created</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_database_has_been_dropped">Object
+ Changed: Database Has Been Dropped</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_function_has_been_created">Object
+ Changed: Function Has Been Created</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_function_has_been_dropped">Object
+ Changed: Function Has Been Dropped</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_index_has_been_created">Object
+ Changed: Index Has Been Created</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_index_has_been_dropped">Object
+ Changed: Index Has Been Dropped</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_table_has_been_altered">Object
+ Changed: Table Has Been Altered</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_table_has_been_created">Object
+ Changed: Table Has Been Created</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_table_has_been_dropped">Object
+ Changed: Table Has Been Dropped</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_user_has_been_dropped">Object
+ Changed: User Has Been Dropped</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_object_changes_detected">Object
+ Changes Detected</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_prepared_statements_not_being_closed">Prepared
+ Statements Not Being Closed</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_prepared_statements_not_being_used_effectively">Prepared
+ Statements Not Being Used Effectively</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_query_cache_disabled">Query
+ Cache Not Enabled</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_server_enforced_data_integrity_checking_disabled">Server-Enforced
+ Data Integrity Checking Disabled</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_server_enforced_data_integrity_checking_not_strict">Server-Enforced
+ Data Integrity Checking Not Strict</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_slow_query_log_not_enabled">Slow
+ Query Log Not Enabled</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_stored_procs_found_with_select_star_syntax">Stored
+ Procedures Found With SELECT * Syntax</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_table_lock_contention_excessive">Table
+ Lock Contention Excessive</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_tables_found_without_primary_keys">Tables
+ Found with No Primary or Unique Keys</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_thread_cache_not_enabled">Thread
+ Cache Not Enabled</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_advisorref_too_many_concurrent_queries_running">Too
+ Many Concurrent Queries Running</link>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Graphs</emphasis>
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_innodb_os_file_access">InnoDB
+ OS File Access</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_innodb_semaphores">InnoDB
+ Semaphores</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_myisam_key_buffer_usage">MyISAM
+ Key Buffer Usage</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_query_cache_efficiency">Query
+ Cache Efficiency</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_query_cache_lowmem_prunes">Query
+ Cache Lowmem Prunes</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_query_cache_queries_in_cache">Query
+ Cache Queries</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_sorting">Sort Activity</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_lock_wait_ratio">Table Lock
+ Wait Ratio</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="mem_graphref_table_locks">Table
+ Locks</link>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </listitem>
+
+ </itemizedlist>
+ </para>
+
+ <para>
+ <emphasis role="bold">Advisors</emphasis>
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para id="mem_advisorref_32_bit_binary_running_on_64_bit_amd_intel_system">
+ <emphasis role="bold">32-Bit Binary Running on 64-Bit AMD Or
+ Intel System</emphasis>
+ </para>
+
+ <para>
+ The chip architecture and operating system installed on a
+ machine both impact the performance of software running on the
+ system. While it is possible to run 32-bit software on many
+ 64-bit systems, in general, software built to run on a 64-bit
+ system will run better on such a system than software built to
+ run on a 32-bit system.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_auto_increment_limit_nearly_reached">
+ <emphasis role="bold">AUTO_INCREMENT Field Limit Nearly
+ Reached</emphasis>
+ </para>
+
+ <para>
+ Many applications need to generate unique numbers and sequences
+ for identification purposes (e.g. customer IDs, bug or trouble
+ ticket tags, membership or order numbers, etc). MySQL's
+ mechanism for doing this is the AUTO_INCREMENT column attribute,
+ which enables you to generate sequential numbers automatically.
+ </para>
+
+ <para>
+ However, the range of numbers that can be generated is limited
+ by the underlying data type. For example, the maximum value
+ possible for a TINYINT UNSIGNED column is 255. If you try to
+ generate a number that exceeds the maximum allowed by the
+ underlying data type (e.g. by inserting a NULL value into the
+ AUTO_INCREMENT column), you will trigger database errors and
+ your application may not behave properly.
+ </para>
+
+ <para>
+ Note that the primary purpose of AUTO_INCREMENT in MySQL is to
+ generate a sequence of <literal>positive</literal> integers. The
+ use of non-positive numbers in in an AUTO_INCREMENT column is
+ unsupported, so you may as well define those columns to be
+ UNSIGNED, which effectively doubles their allowable range.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_account_has_broad_host_specifier">
+ <emphasis role="bold">Account Has An Overly Broad Host
+ Specifier</emphasis>
+ </para>
+
+ <para>
+ The MySQL server has user accounts with overly broad host
+ specifiers. A MySQL account is identified by both a username and
+ a hostname, which are found in the User and Host columns of the
+ mysql.user table. The User value is the name that a client must
+ supply when connecting to the server. The Host value indicates
+ the host or hosts from which the user is allowed to connect. If
+ this is a literal hostname, the account is limited to
+ connections only from that host. If the hostname contains the
+ '%' wildcard character, the user can connect from any host that
+ matches the wildcard character and potentially from any host at
+ all.
+ </para>
+
+ <para>
+ From a security standpoint, literal host values are best and
+ <literal> % </literal> is worst. Accounts that have Host values
+ containing wildcards are more susceptible to attack than
+ accounts with literal host values, because attackers can attempt
+ to connect from a broader range of machines.
+ </para>
+
+ <para>
+ For example, if an account has user and host values of
+ <literal>root</literal> and <literal> % </literal>, it means
+ that you can connect as the root user from
+ <literal>any</literal> machine if you know the password. By
+ contrast, if the host name is <literal>localhost</literal> or
+ <literal>127.0.0.1</literal>, the attacker can only attempt to
+ connect as the root user from the server host.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_account_has_global_privileges">
+ <emphasis role="bold">Account Has Global Privileges</emphasis>
+ </para>
+
+ <para>
+ A MySQL server may have user accounts with privileges on all
+ databases and tables (*.*). In most cases global privileges
+ should be allowed only for the MySQL root user, and possibly for
+ users that you trust or use for backup purposes. Global
+ privileges such as <literal>DROP, ALTER, DELETE, UPDATE,
+ INSERT,</literal> and <literal>LOCK TABLES</literal> may be
+ dangerous as they may cause other users to be affected
+ adversely.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_account_with_old_password_hash">
+ <emphasis role="bold">Account Has Old Insecure Password
+ Hash</emphasis>
+ </para>
+
+ <para>
+ Prior to MySQL 4.1, password hashes computed by the PASSWORD()
+ function were 16 bytes long. As of MySQL 4.1 (and later),
+ PASSWORD() was modified to produce a longer 41-byte hash value
+ to provide enhanced security.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_account_has_strong_mysql_privileges">
+ <emphasis role="bold">Account Has Strong MySQL
+ Privileges</emphasis>
+ </para>
+
+ <para>
+ Certain account privileges can be dangerous and should only be
+ granted to trusted users when necessary. For example, the FILE
+ privilege allows a user to read and write files on the database
+ server (which includes sensitive operating system files), the
+ PROCESS privilege allows currently executing statements to be
+ monitored, and the SHUTDOWN privilege allows a user to shut down
+ the server. In addition, the GRANT privilege allows a user to
+ grant privileges to others.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_agent_host_time_out_of_sync">
+ <emphasis role="bold">Agent Host Time Out of Sync Relative to
+ Dashboard</emphasis>
+ </para>
+
+ <para>
+ To maintain data consistency and to facilitate day-to-day system
+ management operations, which often require comparing logs,
+ files, and timestamps across servers, it is important that the
+ server clocks across all your systems and data centers be
+ synchronized with respect to each other relative to UTC time
+ (which takes timezones into account). When the clock on one
+ server is minutes or hours behind another server, any timestamps
+ created in the databases or on the file systems of those two
+ servers will differ by that amount. Thus if you depend on
+ timestamps to test the freshness of some data item, or if you
+ are trying to diagnose a problem and need to compare timestamps
+ across systems, your task will be more complicated due to this
+ time difference.
+ </para>
+
+ <para>
+ In addition, the data and graphs shown in the MySQL Enterprise
+ Monitor Dashboard will be skewed by the difference in time
+ between the machine hosting the Service Manager and the machines
+ running the Agents. For example, if the time on an Agent machine
+ is one hour behind the time on the Service Manager machine, the
+ MySQL server that Agent is monitoring will appear to be down
+ (see '{'moreInfo:Bug
+ #45937|http://bugs.mysql.com/bug.php?id=45937'}') and no data
+ will appear in the graphs for that server for the first hour
+ after the Agent is started.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_user_connections_have_failed">
+ <emphasis role="bold">Attempted Connections To The Server Have
+ Failed</emphasis>
+ </para>
+
+ <para>
+ Aborted connection attempts to MySQL may indicate an issue with
+ respect to the server or network, or could be indicative of DoS
+ or password-cracking attempts against the MySQL Server. The
+ aborted-connects count is incremented when:{ * A client does not
+ have privileges to access a database{ * A client uses the wrong
+ password{ * A malformed packet is received{ * The
+ connect_timeout variable is exceeded
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_binary_log_file_count_exceeds_specified_limit">
+ <emphasis role="bold">Binary Log File Count Exceeds Specified
+ Limit</emphasis>
+ </para>
+
+ <para>
+ The binary log captures DML, DDL, and security changes that
+ occur and stores these changes in a binary format. The binary
+ log enables replication as well as point-in-time recovery,
+ preventing data loss during a disaster recovery situation. It
+ also enables you to review all alterations made to your
+ database. However, binary logs consume disk space and file
+ system resources, and can be removed from a production server
+ after they are no longer needed by the slaves connecting to this
+ master server, and after they have been backed up.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_binary_log_space_exceeds_specified_limit">
+ <emphasis role="bold">Binary Log Space Exceeds Specified
+ Limit</emphasis>
+ </para>
+
+ <para>
+ The binary log captures DML, DDL, and security changes that
+ occur and stores these changes in a binary format. The binary
+ log enables replication as well as point-in-time recovery,
+ preventing data loss during a disaster recovery situation. It
+ also enables you to review all alterations made to your
+ database. However, binary logs consume disk space and can be
+ removed from a production server after they are no longer needed
+ by the slaves connecting to this master server, and after they
+ have been backed up.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_bin_log_use_exceeding_disk_cache_mem_limits">
+ <emphasis role="bold">Binary Log Usage Exceeding Disk Cache
+ Memory Limits</emphasis>
+ </para>
+
+ <para>
+ When binary log usage exceeds the binary log cache memory
+ limits, it is performing excessive disk operations. For optimal
+ performance, transactions that move through the binary log
+ should be contained within the binary log cache.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_binary_logging_is_limited">
+ <emphasis role="bold">Binary Logging Is Limited</emphasis>
+ </para>
+
+ <para>
+ The binary log captures DML, DDL, and security changes that
+ occur and stores these changes in a binary format. The binary
+ log enables point-in-time recovery, preventing data loss during
+ a disaster recovery situation. It also enables you to review all
+ alterations made to your database.
+ </para>
+
+ <para>
+ Binary logging can be limited to specific databases with the
+ <literal>--binlog-do-db</literal> and the
+ <literal>--binlog-ignore-db</literal> options. However, if these
+ options are used, your point-in-time recovery options are
+ limited accordingly, along with your ability to review
+ alterations made to your system.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_binary_logging_not_enabled">
+ <emphasis role="bold">Binary Logging Not Enabled</emphasis>
+ </para>
+
+ <para>
+ The binary log captures DML, DDL, and security changes that
+ occur and stores these changes in a binary format. The binary
+ log enables point-in-time recovery, preventing data loss during
+ a disaster recovery situation. It also enables you to review all
+ alterations made to your database.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_bin_log_not_synced_at_each_write">
+ <emphasis role="bold">Binary Logging Not Synchronized To Disk At
+ Each Write</emphasis>
+ </para>
+
+ <para>
+ By default, the binary log is not synchronized to disk at each
+ write. If the server host, operating system, or MySQL server
+ crash, there is a chance that the latest statements in the
+ binary log are not written to disk. To prevent this, you can
+ cause the binary log to be synchronized to disk after every Nth
+ binary log entry using the <literal>sync_binlog</literal> global
+ variable. 1 is the safest value, but also the slowest.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_cpu_io_usage_excessive">
+ <emphasis role="bold">CPU I/O Usage Excessive</emphasis>
+ </para>
+
+ <para>
+ CPU I/O usage should be low on a properly configured and
+ well-tuned system. Excessive CPU I/O usage is often indicative
+ of poor disk or network performance.
+ </para>
+
+ <para>
+ Default frequency 00:01:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_cpu_usage_excessive">
+ <emphasis role="bold">CPU Usage Excessive</emphasis>
+ </para>
+
+ <para>
+ CPU usage should be low-to-moderate on a properly configured and
+ well-tuned system. Excessive CPU usage can be indicative of many
+ problems: insufficient RAM, fragmented disks, poorly-tuned
+ queries, etc.
+ </para>
+
+ <para>
+ Default frequency 00:01:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_upgrade_to_fix_bug_25578">
+ <emphasis role="bold">CREATE TABLE LIKE Does Not Require Any
+ Privileges On Source Table</emphasis>
+ </para>
+
+ <para>
+ Due to bug #25578, a user who does not have any access to a
+ database can still clone the structure of tables in that
+ database. Knowing the structure of tables in a database may give
+ a determined hacker insight that allows him or her to proceed
+ with other exploits.
+ </para>
+
+ <para>
+ This bug has been fixed in later versions of the MySQL server.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_connection_usage_excessive">
+ <emphasis role="bold">Connection Usage Excessive</emphasis>
+ </para>
+
+ <para>
+ Once the maximum connection limit for the MySQL server has been
+ reached, no other user connections can be established and errors
+ occur on the client side of the application.
+ </para>
+
+ <para>
+ Default frequency 00:01:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_data_flushed_to_disk_after_each_sql_stmt">
+ <emphasis role="bold">Data Flushed To Disk After Each SQL
+ Statement</emphasis>
+ </para>
+
+ <para>
+ MySQL updates its data files on disk with the write() system
+ call after every SQL statement and lets the operating system
+ handle the synchronizing to disk. You can force MySQL to flush
+ everything to disk after every SQL statement with the
+ <literal>--flush</literal> option, however, this will have an
+ adverse effect on performance.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_db_not_portable_due_to_identifier_case_sensitivity">
+ <emphasis role="bold">Database May Not Be Portable Due To
+ Identifier Case Sensitivity</emphasis>
+ </para>
+
+ <para>
+ The case sensitivity of the underlying operating system
+ determines the case sensitivity of database and table names. If
+ you are using MySQL on only one platform, you don't normally
+ have to worry about this. However, depending on how you have
+ configured your server you may encounter difficulties if you
+ want to transfer tables between platforms that differ in
+ filesystem case sensitivity.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_upgrade_to_fix_bug_15828">
+ <emphasis role="bold">Date-Handling Bugs Can Crash The
+ Server</emphasis>
+ </para>
+
+ <para>
+ Two bugs related to date-handling operations can crash the
+ server leading to potential Denial of Service (DoS) attacks:{ *
+ STR_TO_DATE(1,NULL) caused a server crash (Bug#15828);{ *
+ Invalid arguments to DATE_FORMAT() caused a server crash
+ (Bug#20729).{ These bugs have been fixed in later versions of
+ the MySQL server.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_default_value_being_used_for_max_prepared_stmt_count">
+ <emphasis role="bold">Default Value Being Used For
+ max_prepared_stmt_count</emphasis>
+ </para>
+
+ <para>
+ Prepared statements may increase performance in applications
+ that execute similar statements more than once, primarily
+ because the query is parsed only once. Prepared statements can
+ also reduce network traffic because it is only necessary to send
+ the data for the parameters for each execution rather than the
+ whole statement.
+ </para>
+
+ <para>
+ However, prepared statements consume memory in the MySQL server
+ until they are closed, so it is important to use them properly
+ and to limit the number of statements that can be open at any
+ one time. The default value for max_prepared_stmt_count may not
+ be appropriate for your application and environment.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_upgrade_to_fix_bug_27294">
+ <emphasis role="bold">Disabling Next-Key Locking In InnoDB Can
+ Crash The Server</emphasis>
+ </para>
+
+ <para>
+ Due to several bugs, the server could crash if next-key locking
+ in InnoDB was disabled.
+ </para>
+
+ <para>
+ These bugs have been fixed in later versions of the MySQL
+ server.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_event_scheduler_disabled">
+ <emphasis role="bold">Event Scheduler Disabled</emphasis>
+ </para>
+
+ <para>
+ The Event Scheduler is a very useful feature when enabled. It is
+ a framework for executing SQL commands at specific times or at
+ regular intervals. Conceptually, it is similar to the idea of
+ the Unix crontab (also known as a "cron job") or the Windows
+ Task Scheduler.
+ </para>
+
+ <para>
+ The basics of its architecture are simple. An event is a stored
+ routine with a starting date and time, and a recurring tag. Once
+ defined and activated, it will run when requested. Unlike
+ triggers, events are not linked to specific table operations,
+ but to dates and times. Using the event scheduler, the database
+ administrator can perform recurring events with minimal hassle.
+ Common uses are the cleanup of obsolete data, the creation of
+ summary tables for statistics, and monitoring of server
+ performance and usage.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_excessive_disk_temp_tables">
+ <emphasis role="bold">Excessive Disk Temporary Table Usage
+ Detected</emphasis>
+ </para>
+
+ <para>
+ If the space required to build a temporary table exceeds either
+ <literal>tmp_table_size</literal> or
+ <literal>max_heap_table_size</literal>, MySQL creates a
+ disk-based table in the server's tmpdir directory. Also, tables
+ that have TEXT or BLOB columns are automatically placed on disk.
+ </para>
+
+ <para>
+ For performance reasons it is ideal to have most temporary
+ tables created in memory, leaving exceedingly large temporary
+ tables to be created on disk.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_excessive_number_of_locked_processes">
+ <emphasis role="bold">Excessive Number of Locked
+ Processes</emphasis>
+ </para>
+
+ <para>
+ Depending on the circumstances, storage engines, and other
+ factors, one process may be using or accessing a resource (e.g.
+ a table or row) required by another process in such a way that
+ the second process cannot proceed until the first process
+ releases the resource. In this case the second process is in a
+ "locked" state until the resource is released. If many processes
+ are in a locked state it may be a sign of serious trouble
+ related to resource contention, or a long running session that
+ is not releasing currently held locks when it should have.
+ </para>
+
+ <para>
+ Default frequency 00:01:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_excessive_number_of_long_running_processes">
+ <emphasis role="bold">Excessive Number of Long Running
+ Processes</emphasis>
+ </para>
+
+ <para>
+ Most applications and databases are designed to execute queries
+ very quickly. If many queries are taking a long time to execute
+ (e.g. more than a few seconds) it can be a sign of trouble. In
+ such cases queries may need to be tuned or rewritten, or indexes
+ added to improve performance. In other cases the database schema
+ may have to be redesigned.
+ </para>
+
+ <para>
+ Default frequency 00:01:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_excessive_number_of_long_running_processes_locked">
+ <emphasis role="bold">Excessive Number of Long Running Processes
+ Locked</emphasis>
+ </para>
+
+ <para>
+ Most applications and databases are designed to execute queries
+ very quickly, and to avoid resource contention where one query
+ is waiting for another to release a lock on some shared
+ resource. If many queries are locked and taking a long time to
+ execute (e.g. more than a few seconds), it can be a sign of
+ performance trouble and resource contention. In such cases
+ queries may need to be tuned or rewritten, or indexes added to
+ improve performance. In other cases the database schema may have
+ to be redesigned.
+ </para>
+
+ <para>
+ Default frequency 00:01:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_too_many_aborted_connection_attempts">
+ <emphasis role="bold">Excessive Percentage Of Attempted
+ Connections To The Server Have Failed</emphasis>
+ </para>
+
+ <para>
+ Excess aborted connection attempts to MySQL may indicate an
+ issue with respect to the server or network, or could be
+ indicative of DoS or password-cracking attempts against the
+ MySQL Server. The aborted-connects count is incremented when:{ *
+ A client does not have privileges to access a database{ * A
+ client uses the wrong password{ * A malformed packet is
+ received{ * The connect_timeout variable is exceeded
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_flush_time_set_to_non-zero_value">
+ <emphasis role="bold">Flush Time Set To Non-Zero
+ Value</emphasis>
+ </para>
+
+ <para>
+ If <literal>flush_time</literal> is set to a non-zero value, all
+ tables are closed every flush_time seconds to free up resources
+ and synchronize unflushed data to disk. If your system is
+ unreliable and tends to lock up or restart often, forcing out
+ table changes this way degrades performance but can reduce the
+ chance of table corruption or data loss. We recommend that this
+ option be used only on Windows, or on systems with minimal
+ resources.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_general_query_log_enabled">
+ <emphasis role="bold">General Query Log Enabled</emphasis>
+ </para>
+
+ <para>
+ The general query log is a general record of what mysqld is
+ doing. The server writes information to this log when clients
+ connect or disconnect, and it logs each SQL statement received
+ from clients. The general query log can be very useful when you
+ suspect an error in a client and want to know exactly what the
+ client sent to mysqld.
+ </para>
+
+ <para>
+ However, the general query log should not be enabled in
+ production environments because:{ * It adds overhead to the
+ server;{ * It logs statements in the order they were received,
+ not the order they were executed, so it is not reliable for
+ backup/recovery;{ * It grows fast and can use a lot of disk
+ space;{ * You cannot stop logging to the general query log
+ without stopping the server (for versions previous to 5.1). {
+ You should use the binary log instead.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_insert_on_duplicate_key_update_bug_may_break_replication">
+ <emphasis role="bold">INSERT ON DUPLICATE KEY UPDATE Bug May
+ Break Replication</emphasis>
+ </para>
+
+ <para>
+ For INSERT ... ON DUPLICATE KEY UPDATE statements where some
+ AUTO_INCREMENT values were generated automatically for inserts
+ and some rows were updated, one auto-generated value was lost
+ per updated row, leading to faster exhaustion of the range of
+ the AUTO_INCREMENT column. Affected versions of MySQL include
+ 5.0.24 to 5.0.34, and 5.1.12 to 5.1.17 (inclusive).
+ </para>
+
+ <para>
+ Because the original problem can affect replication (different
+ values on master and slave), it is recommended that the master
+ and its slaves be upgraded to the current version.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_upgrade_to_fix_bug_28478">
+ <emphasis role="bold">Improper key_cache_block_size Setting Can
+ Corrupt MyISAM Tables</emphasis>
+ </para>
+
+ <para>
+ The server deducts some bytes from the key_cache_block_size
+ option value and reduces it to the next lower 512 byte boundary.
+ The resulting block size is not a power of two. Setting the
+ key_cache_block_size system variable to a value that is not a
+ power of two results in MyISAM table corruption.
+ </para>
+
+ <para>
+ This bug has been fixed in later versions of the MySQL server.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_in_memory_temp_table_size_limited_by_max_heap_table_size">
+ <emphasis role="bold">In-Memory Temporary Table Size Limited By
+ Maximum Heap Table Size</emphasis>
+ </para>
+
+ <para>
+ If the space required to build a temporary table exceeds either
+ <literal>tmp_table_size</literal> or
+ <literal>max_heap_table_size</literal>, MySQL creates a
+ disk-based table in the server's tmpdir directory. For
+ performance reasons it is ideal to have most temporary tables
+ created in memory, leaving exceedingly large temporary tables to
+ be created on disk. Many DBAs configure
+ <literal>tmp_table_size</literal> appropriately, but forget that
+ <literal>max_heap_table_size</literal> also plays a role.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_incorrect_innodb_flush_method_on_windows">
+ <emphasis role="bold">Incorrect InnoDB Flush Method On
+ Windows</emphasis>
+ </para>
+
+ <para>
+ If <literal>innodb_file_per_table</literal> is enabled and
+ <literal>innodb_flush_method</literal> is not set to
+ <literal>unbuffered</literal> on Windows, MySQL may not start
+ and you may see operating system error code 87.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_indexes_not_being_used_efficiently">
+ <emphasis role="bold">Indexes Not Being Used
+ Efficiently</emphasis>
+ </para>
+
+ <para>
+ The target server does not appear to be using indexes
+ efficiently. The values of Handler_read_rnd_next and
+ Handler_read_rnd together - which reflect the number of rows
+ read via full table scans - are high compared to the Handler
+ variables which denote index accesses - such as
+ Handler_read_key, Handler_read_next etc. You should examine your
+ tables and queries for proper use of indexes.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_innodb_buffer_cache_hit_rate_not_optimal">
+ <emphasis role="bold">InnoDB Buffer Cache Has Sub-Optimal Hit
+ Rate</emphasis>
+ </para>
+
+ <para>
+ Logical I/O is many times faster than physical I/O, and
+ therefore a DBA should strive to keep physical I/O to a minimum.
+ It is true that logical I/O is not free, and that the DBA should
+ work to keep <literal>all</literal> I/O to a minimum, but it is
+ best if most data access is performed in memory. When using
+ InnoDB, most data access should occur in RAM, and therefore the
+ InnoDB buffer cache hit rate should be high.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_innodb_buffer_pool_writes_may_be_performance_bottleneck">
+ <emphasis role="bold">InnoDB Buffer Pool Writes May Be
+ Performance Bottleneck</emphasis>
+ </para>
+
+ <para>
+ For optimal performance, InnoDB should not have to wait before
+ writing pages into the InnoDB buffer pool.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_innodb_doublewrite_buffer_enabled">
+ <emphasis role="bold">InnoDB Doublewrite Buffer
+ Enabled</emphasis>
+ </para>
+
+ <para>
+ InnoDB uses a novel file flush technique called ~~doublewrite~~.
+ It adds safety to recovery following an operating system crash
+ or a power outage, and improves performance on most varieties of
+ Unix by reducing the need for fsync() operations.
+ </para>
+
+ <para>
+ Doublewrite means that before writing pages to a data file,
+ InnoDB first writes them to a contiguous tablespace area called
+ the doublewrite buffer. Only after the write and the flush to
+ the doublewrite buffer has completed does InnoDB write the pages
+ to their proper positions in the data file. If the operating
+ system crashes in the middle of a page write, during recovery
+ InnoDB can find a good copy of the page from the doublewrite
+ buffer.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_innodb_flush_method_may_not_be_optimal">
+ <emphasis role="bold">InnoDB Flush Method May Not Be
+ Optimal</emphasis>
+ </para>
+
+ <para>
+ Different values for <literal>innodb_flush_method</literal> can
+ have a marked effect on InnoDB performance. In some versions of
+ GNU/Linux and Unix, flushing files to disk by invoking fsync()
+ (which InnoDB uses by default) or other similar methods, can be
+ surprisingly slow. If you are dissatisfied with database write
+ performance, you might try setting the innodb_flush_method
+ parameter to O_DIRECT or O_DSYNC.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_innodb_log_buffer_flushed_to_disk_after_each_trx">
+ <emphasis role="bold">InnoDB Log Buffer Flushed To Disk After
+ Each Transaction</emphasis>
+ </para>
+
+ <para>
+ By default, InnoDB's log buffer is written out to the log file
+ at each transaction commit and a flush-to-disk operation is
+ performed on the log file, which enforces ACID compliance. In
+ the event of a crash, if you can afford to lose a second's worth
+ of transactions, you can achieve better performance by setting
+ <literal>innodb_flush_log_at_trx_commit</literal> to either 0 or
+ 2. If you set the value to 2, then only an operating system
+ crash or a power outage can erase the last second of
+ transactions. This can be very useful on slave servers, where
+ the loss of a second's worth of data can be recovered from the
+ master server if needed.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_log_waits_may_be_performance_bottleneck">
+ <emphasis role="bold">InnoDB Log Waits May Be Performance
+ Bottleneck</emphasis>
+ </para>
+
+ <para>
+ For optimal performance, InnoDB should not have to wait before
+ writing DML activity to the InnoDB log buffer.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_innoDB_tablespace_cannot_automatically_expand">
+ <emphasis role="bold">InnoDB Tablespace Cannot Automatically
+ Expand</emphasis>
+ </para>
+
+ <para>
+ If the InnoDB tablespace is not allowed to automatically grow to
+ meet incoming data demands and your application generates more
+ data than there is room for, out-of-space errors will occur and
+ your application may experience problems.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_innodb_redo_logs_not_sized_correctly">
+ <emphasis role="bold">InnoDB Transaction Logs Not Sized
+ Correctly</emphasis>
+ </para>
+
+ <para>
+ To avoid frequent checkpoint activity and reduce overall
+ physical I/O, which can slow down write-heavy systems, the
+ InnoDB transaction logs should be approximately 50-100% of the
+ size of the InnoDB buffer pool, depending on the size of the
+ buffer pool.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_insecure_password_authentication_option_is_enabled">
+ <emphasis role="bold">Insecure Password Authentication Option Is
+ Enabled</emphasis>
+ </para>
+
+ <para>
+ Prior to MySQL 4.1, password hashes computed by the PASSWORD()
+ function were 16 bytes long. As of MySQL 4.1 (and later),
+ PASSWORD() was modified to produce a longer 41-byte hash value
+ to provide enhanced security. However, in order to allow
+ backward-compatibility with user tables that have been migrated
+ from pre-4.1 systems, you can configure MySQL to accept logins
+ for accounts that have password hashes created using the old,
+ less-secure PASSWORD() function, but this is not recommended.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_insecure_password_generation_option_is_enabled">
+ <emphasis role="bold">Insecure Password Generation Option Is
+ Enabled</emphasis>
+ </para>
+
+ <para>
+ Prior to MySQL 4.1, password hashes computed by the PASSWORD()
+ function were 16 bytes long. As of MySQL 4.1 (and later),
+ PASSWORD() was modified to produce a longer 41-byte hash value
+ to provide enhanced security. In order to allow
+ backward-compatibility with older client programs, you can
+ configure MySQL to generate short (pre-4.1) password hashes for
+ new passwords, however, this is not recommended.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_key_buffer_size_greater_than_4gb">
+ <emphasis role="bold">Key Buffer Size Greater Than 4
+ GB</emphasis>
+ </para>
+
+ <para>
+ To minimize disk I/O, the MyISAM storage engine employs a key
+ cache (or key buffer) to keep the most frequently accessed index
+ blocks in memory. However, prior to MySQL version 5.0.52 this
+ key buffer is limited in size to 4 GB, <literal>even on 64-bit
+ operating systems</literal>. If set to a larger value, mysqld
+ may crash when it tries to increase the actual buffer beyond 4
+ GB. Note that key_buffer_size is limited to 4GB on both 32-bit
+ and 64-bit Windows systems, even in MySQL version 5.0.52 and
+ later.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_key_buffer_size_not_optimal_for_key_cache">
+ <emphasis role="bold">Key Buffer Size May Not Be Optimal For Key
+ Cache</emphasis>
+ </para>
+
+ <para>
+ The key cache hit ratio represents the proportion of keys that
+ are being read from the key cache in memory instead of from
+ disk. This should normally be greater than 99% for optimum
+ efficiency.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_key_buffer_size_not_optimal_for_system_ram">
+ <emphasis role="bold">Key Buffer Size May Not Be Optimal For
+ System RAM</emphasis>
+ </para>
+
+ <para>
+ The target server does not appear to have sufficient memory
+ devoted to the key cache. On a dedicated server, this cache is
+ commonly about 25%-50% of total RAM.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_local_option_of_load_data_enabled">
+ <emphasis role="bold">LOCAL Option Of LOAD DATA Statement Is
+ Enabled</emphasis>
+ </para>
+
+ <para>
+ The LOAD DATA statement can load a file that is located on the
+ server host, or it can load a file that is located on the client
+ host when the LOCAL keyword is specified.
+ </para>
+
+ <para>
+ There are two potential security issues with supporting the
+ LOCAL version of LOAD DATA statements:{ * The transfer of the
+ file from the client host to the server host is initiated by the
+ MySQL server. In theory, a patched server could be built that
+ would tell the client program to transfer a file of the server's
+ choosing rather than the file named by the client in the LOAD
+ DATA statement. Such a server could access any file on the
+ client host to which the client user has read access.{ * In a
+ Web environment where the clients are connecting from a separate
+ web server, a user could use LOAD DATA LOCAL to read any files
+ that the web server process has read access to (assuming that a
+ user could run any statement against the SQL server). In this
+ environment, the client with respect to the MySQL server
+ actually is the web server, not the remote program being run by
+ the user who connects to the web server.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_lock_contention_excessive">
+ <emphasis role="bold">Lock Contention Excessive</emphasis>
+ </para>
+
+ <para>
+ Performance can be degraded if the percentage of table
+ operations that have to wait for a lock is high compared to the
+ overall number of locks. This can happen when using a
+ table-level locking storage engine, such as MyISAM, instead of a
+ row-level locking storage engine.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_upgrade_to_fix_bug_28984">
+ <emphasis role="bold">Malformed Password Packet In Connection
+ Protocol Can Crash Server</emphasis>
+ </para>
+
+ <para>
+ Due to bug #28984, a malformed password packet in the connection
+ protocol could cause the server to crash. This can lead to
+ denial of service (DoS) attacks.
+ </para>
+
+ <para>
+ This bug has been fixed in later versions of the MySQL server.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_max_connection_limit_nearing">
+ <emphasis role="bold">Maximum Connection Limit Nearing Or
+ Reached</emphasis>
+ </para>
+
+ <para>
+ Once the maximum connection limit for the MySQL server has been
+ reached, no other user connections can be established and errors
+ occur on the client side of the application.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_upgrade_to_fix_bug_15756">
+ <emphasis role="bold">Missing Security Improvements In GRANT
+ Options</emphasis>
+ </para>
+
+ <para>
+ The GRANT statement is used to create MySQL user accounts and to
+ grant rights to accounts. Due to bugs 15756 and 14385, rights
+ may be granted erroneously in certain circumstances: { * In
+ grant table comparisons, improper use of a latin1 collation
+ caused some hostname matches to be true that should have been
+ false (Bug#15756).{ * GRANTs to users with wildcards in their
+ host information could be erroneously applied to similar users
+ with the same username and similar wildcards. For example, a
+ privilege granted to foo@% is also applied to user foo@192.%
+ (Bug#14385).{ These bugs have been fixed in later versions of
+ the MySQL server.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_upgrade_to_fix_bug_8378">
+ <emphasis role="bold">Multi-Byte Encoding Processing Can Lead To
+ SQL Injection</emphasis>
+ </para>
+
+ <para>
+ Due to bug 8378, the server incorrectly parsed strings escaped
+ with the mysql_real_escape_string() C API function. As a result,
+ even when the character set-aware mysql_real_escape_string()
+ function was used, SQL injection was possible.
+ </para>
+
+ <para>
+ This bug has been fixed in later versions of the MySQL server.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_myisam_repair_threads_not_equal_to_one">
+ <emphasis role="bold">Multiple Threads Used When Repairing
+ MyISAM Tables</emphasis>
+ </para>
+
+ <para>
+ Using multiple threads when repairing MyISAM tables can improve
+ performance, but it can also lead to table and index corruption
+ as reported by several bugs
+ ('{'moreInfo:#11527|http://bugs.mysql.com/bug.php?id=11527'}',
+ '{'moreInfo:#11684|http://bugs.mysql.com/bug.php?id=11684'}',
+ '{'moreInfo:#18874|http://bugs.mysql.com/bug.php?id=18874'}').
+ Even though these bugs have been fixed, this feature is still
+ considered beta-quality, as noted in the manual.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_myisam_concurrent_insert_setting_not_optimal">
+ <emphasis role="bold">MyISAM Concurrent Insert Setting May Not
+ Be Optimal</emphasis>
+ </para>
+
+ <para>
+ MyISAM uses table-level locking, which can adversely affect
+ performance when there are many concurrent INSERT and SELECT
+ statements because INSERTs will block all SELECTs until the
+ INSERT is completed. However, MyISAM can be configured to allow
+ INSERT and SELECT statements to run concurrently in certain
+ situations.{ * If <literal>concurrent_insert is set to
+ 1</literal> (the default), MySQL allows INSERT and SELECT
+ statements to run concurrently <literal>for MyISAM tables that
+ have no free blocks in the middle</literal> of the data file.{ *
+ If <literal>concurrent_insert is set to 2</literal> (available
+ in MySQL 5.0.6 and later), MySQL allows concurrent inserts
+ <literal>for all MyISAM tables</literal>, even those that have
+ holes. For a table with a hole, new rows are inserted at the end
+ of the table if it is in use by another thread. Otherwise, MySQL
+ acquires a normal write lock and inserts the row into the hole.{
+ Note that setting concurrent_insert to 2 allows tables to grow
+ even when there are holes in the middle. This can be bad for
+ applications that delete large chunks of data but continue to
+ issue many SELECTs, thus effectively preventing INSERTs from
+ filling the holes.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_myisam_indexes_found_with_no_statistics">
+ <emphasis role="bold">MyISAM Indexes Found with No
+ Statistics</emphasis>
+ </para>
+
+ <para>
+ The MySQL optimizer needs index statistics to help make choices
+ about whether to use indexes to satisfy SQL queries. Having no
+ statistics or outdated statistics limits the optimizer's ability
+ to make smart and informed access plan choices.
+ </para>
+
+ <para>
+ Default frequency 12:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_key_cache_has_suboptimal_hit_rate">
+ <emphasis role="bold">MyISAM Key Cache Has Sub-Optimal Hit
+ Rate</emphasis>
+ </para>
+
+ <para>
+ The key cache hit ratio represents the proportion of index
+ values that are being read from the key cache in memory instead
+ of from disk. This should normally be greater than 99% for
+ optimum efficiency.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_agent_mem_usage_excessive">
+ <emphasis role="bold">MySQL Agent Memory Usage
+ Excessive</emphasis>
+ </para>
+
+ <para>
+ The memory needed by the MySQL Agent for basic monitoring is
+ fairly small and consistent, and depends on the number of rules
+ you have enabled. However, when the Query Analyzer is enabled,
+ the Agent can use significantly more memory to monitor and
+ analyze whatever queries you direct through it. In this case,
+ the amount of memory used depends on the number of unique
+ normalized queries, example queries and example explains being
+ processed, plus the network bandwidth required to send query
+ data to the Service Manager. In general, the amount of memory
+ used for the Query Analyzer is small and well-bounded, but under
+ some circumstances it can become excessive, especially on older
+ versions of Linux.
+ </para>
+
+ <para>
+ Default frequency 00:01:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_agent_not_communicating_with_mysqld">
+ <emphasis role="bold">MySQL Agent Not Communicating With
+ Database Server</emphasis>
+ </para>
+
+ <para>
+ The MySQL Enterprise Service Agent must be able to communicate
+ with the local MySQL database server in order to monitor the
+ server and provide advice on enforcement of best practices.
+ </para>
+
+ <para>
+ Default frequency 00:01:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_agent_not_reachable">
+ <emphasis role="bold">MySQL Agent Not Reachable</emphasis>
+ </para>
+
+ <para>
+ In order to monitor a MySQL server, a Service Agent must be
+ running and communicating with the Service Manager. If the Agent
+ cannot communicate with the Service Manager, the Service Manager
+ has no way of knowing if the MySQL database server being
+ monitored is running, and it cannot collect current statistics
+ to properly evaluate the rules scheduled against that server.
+ </para>
+
+ <para>
+ Default frequency 00:00:01
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_mysql_server_has_been_restarted">
+ <emphasis role="bold">MySQL Server Has Been Restarted</emphasis>
+ </para>
+
+ <para>
+ To perform useful work, a database server must be up-and-running
+ continuously. It is normal for a production server to run
+ continuously for weeks, months, or longer. If a server has been
+ restarted recently, it may be the result of planned maintenance,
+ but it may also be due to an unplanned event that should be
+ investigated.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_mysqld_not_reachable">
+ <emphasis role="bold">MySQL Server Not Reachable</emphasis>
+ </para>
+
+ <para>
+ To perform useful work, it must be possible to connect to the
+ local MySQL database server. If the MySQL Enterprise Service
+ Agent cannot communicate with the server, it is likely the
+ server is not running.
+ </para>
+
+ <para>
+ Default frequency 00:01:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_next_key_locking_disabled_for_innodb_but_binary_logging_enabled">
+ <emphasis role="bold">Next-Key Locking Disabled For InnoDB But
+ Binary Logging Enabled</emphasis>
+ </para>
+
+ <para>
+ Next-key locking in InnoDB can be disabled, which may improve
+ performance in some situations. However, this may result in
+ inconsistent data when recovering from the binary logs in
+ replication or recovery situations. Starting from MySQL 5.0.2,
+ this option is even more unsafe than it was in version 4.1.x.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_upgrade_to_fix_bug_16365">
+ <emphasis role="bold">No Limit On Total Number Of Prepared
+ Statements</emphasis>
+ </para>
+
+ <para>
+ Due to bug #16365, there is no limit to the number of prepared
+ statements that can be open per connection. This can lead to a
+ Denial Of Service (DoS) attack, as the server will crash with
+ out-of-memory (OOM) errors when the amount of statements becomes
+ very large.
+ </para>
+
+ <para>
+ This bug has been fixed in later versions of the MySQL server.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_no_value_set_for_myisam_recover">
+ <emphasis role="bold">No Value Set For myisam-recover</emphasis>
+ </para>
+
+ <para>
+ The <literal>myisam-recover</literal> option enables automatic
+ MyISAM crash recovery should a MyISAM table become corrupt for
+ some reason. If this option is not set, then a table will be
+ "Marked as crashed" if it becomes corrupt, and no sessions will
+ be able to SELECT from it, or perform any sort of DML against
+ it.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_non_authorized_user_has_sql_privileges_on_all_databases">
+ <emphasis role="bold">Non-Authorized User Has DB, Table, Or
+ Index Privileges On All Databases</emphasis>
+ </para>
+
+ <para>
+ Privileges such as SELECT, INSERT, ALTER, and so forth allow a
+ user to view and change data, as well as impact system
+ performance. Such operations should be limited to only those
+ databases to which a user truly needs such access so the user
+ cannot inadvertently affect other people's applications and data
+ stores.
+ </para>
+
+ <para>
+ Default frequency 01:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_non_authorized_user_has_grant_privileges_on_all_dbs">
+ <emphasis role="bold">Non-Authorized User Has GRANT Privileges
+ On All Databases</emphasis>
+ </para>
+
+ <para>
+ The <literal>GRANT</literal> privilege, when given on all
+ databases as opposed to being limited to a few specific
+ databases, enables a user to give to other users those
+ privileges that the grantor possesses on all databases. It can
+ be used for databases, tables, and stored routines. Such a
+ privilege should be limited to as few users as possible. Users
+ who do indeed need the GRANT privilege should have that
+ privilege limited to only those databases they are responsible
+ for, and not for all databases.
+ </para>
+
+ <para>
+ Default frequency 01:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_non_authorized_user_has_server_admin_privileges">
+ <emphasis role="bold">Non-Authorized User Has Server Admin
+ Privileges</emphasis>
+ </para>
+
+ <para>
+ Certain privileges, such as SHUTDOWN and SUPER, are primarily
+ used for server administration. Some of these privileges can
+ have a dramatic effect on a system because they allow someone to
+ shutdown the server or kill running processes. Such operations
+ should be limited to a small set of users.
+ </para>
+
+ <para>
+ Default frequency 01:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_database_has_been_altered">
+ <emphasis role="bold">Object Changed: Database Has Been
+ Altered</emphasis>
+ </para>
+
+ <para>
+ For development environments, changes to databases and objects
+ may be a normal occurrence, but not for production environments.
+ It is wise to know when any changes occur in a production
+ environment with respect to any database structures and
+ investigate the reasons for the changes.
+ </para>
+
+ <para>
+ Default frequency 00:10:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_database_has_been_created">
+ <emphasis role="bold">Object Changed: Database Has Been
+ Created</emphasis>
+ </para>
+
+ <para>
+ For development environments, changes to databases and objects
+ may be a normal occurrence, but not for production environments.
+ It is wise to know when any changes occur in a production
+ environment with respect to any database structures and
+ investigate the reasons for the changes.
+ </para>
+
+ <para>
+ Default frequency 00:10:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_database_has_been_dropped">
+ <emphasis role="bold">Object Changed: Database Has Been
+ Dropped</emphasis>
+ </para>
+
+ <para>
+ For development environments, changes to databases and objects
+ may be a normal occurrence, but not for production environments.
+ It is wise to know when any changes occur in a production
+ environment with respect to any database structures and
+ investigate the reasons for the changes.
+ </para>
+
+ <para>
+ Default frequency 00:10:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_function_has_been_created">
+ <emphasis role="bold">Object Changed: Function Has Been
+ Created</emphasis>
+ </para>
+
+ <para>
+ For development environments, changes to databases and objects
+ may be a normal occurrence, but not for production environments.
+ It is wise to know when any changes occur in a production
+ environment with respect to any database structures and
+ investigate the reasons for the changes.
+ </para>
+
+ <para>
+ Default frequency 00:10:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_function_has_been_dropped">
+ <emphasis role="bold">Object Changed: Function Has Been
+ Dropped</emphasis>
+ </para>
+
+ <para>
+ For development environments, changes to databases and objects
+ may be a normal occurrence, but not for production environments.
+ It is wise to know when any changes occur in a production
+ environment with respect to any database structures or functions
+ and investigate the reasons for the changes.
+ </para>
+
+ <para>
+ Default frequency 00:10:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_index_has_been_created">
+ <emphasis role="bold">Object Changed: Index Has Been
+ Created</emphasis>
+ </para>
+
+ <para>
+ For development environments, changes to databases and objects
+ may be a normal occurrence, but not for production environments.
+ It is wise to know when any changes occur in a production
+ environment with respect to any database structures and
+ investigate the reasons for the changes.
+ </para>
+
+ <para>
+ Default frequency 00:10:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_index_has_been_dropped">
+ <emphasis role="bold">Object Changed: Index Has Been
+ Dropped</emphasis>
+ </para>
+
+ <para>
+ For development environments, changes to databases and objects
+ may be a normal occurrence, but not for production environments.
+ It is wise to know when any changes occur in a production
+ environment with respect to any database structures and
+ investigate the reasons for the changes.
+ </para>
+
+ <para>
+ Default frequency 00:10:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_table_has_been_altered">
+ <emphasis role="bold">Object Changed: Table Has Been
+ Altered</emphasis>
+ </para>
+
+ <para>
+ For development environments, changes to databases and objects
+ may be a normal occurrence, but not for production environments.
+ It is wise to know when any changes occur in a production
+ environment with respect to database structures and investigate
+ the reasons for the changes.
+ </para>
+
+ <para>
+ Default frequency 00:10:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_table_has_been_created">
+ <emphasis role="bold">Object Changed: Table Has Been
+ Created</emphasis>
+ </para>
+
+ <para>
+ For development environments, changes to databases and objects
+ may be a normal occurrence, but not for production environments.
+ It is wise to know when any changes occur in a production
+ environment with respect to database structures and investigate
+ the reasons for the changes.
+ </para>
+
+ <para>
+ Default frequency 00:10:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_table_has_been_dropped">
+ <emphasis role="bold">Object Changed: Table Has Been
+ Dropped</emphasis>
+ </para>
+
+ <para>
+ For development environments, changes to databases and objects
+ may be a normal occurrence, but not for production environments.
+ It is wise to know when changes occur in a production
+ environment with respect to database structures and investigate
+ the reasons for the changes.
+ </para>
+
+ <para>
+ Default frequency 00:10:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_user_has_been_dropped">
+ <emphasis role="bold">Object Changed: User Has Been
+ Dropped</emphasis>
+ </para>
+
+ <para>
+ For development environments, changes to databases and objects
+ may be a normal occurrence, but not for production environments.
+ It is wise to know when changes occur in a production
+ environment with respect to database structures and investigate
+ the reasons for the changes.
+ </para>
+
+ <para>
+ Default frequency 00:10:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_object_changes_detected">
+ <emphasis role="bold">Object Changes Detected</emphasis>
+ </para>
+
+ <para>
+ For development environments, changes to databases and objects
+ may be a normal occurrence, but not for production environments.
+ It is wise to know when any changes occur in a production
+ environment with respect to any database structures and
+ investigate the reasons for the changes.
+ </para>
+
+ <para>
+ Default frequency 00:10:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_prepared_statements_not_being_closed">
+ <emphasis role="bold">Prepared Statements Not Being
+ Closed</emphasis>
+ </para>
+
+ <para>
+ Prepared statements may increase performance in applications
+ that execute similar statements more than once, primarily
+ because the query is parsed only once. Prepared statements can
+ also reduce network traffic because it is only necessary to send
+ the data for the parameters for each execution rather than the
+ whole statement.
+ </para>
+
+ <para>
+ However, prepared statements take time to prepare and consume
+ memory in the MySQL server until they are closed, so it is
+ important to use them properly. If you are not closing prepared
+ statements when you are done with them, you are needlessly tying
+ up memory that could be put to use in other ways.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_prepared_statements_not_being_used_effectively">
+ <emphasis role="bold">Prepared Statements Not Being Used
+ Effectively</emphasis>
+ </para>
+
+ <para>
+ Prepared statements may increase performance in applications
+ that execute similar statements more than once, primarily
+ because the query is parsed only once. Prepared statements can
+ also reduce network traffic because it is only necessary to send
+ the data for the parameters for each execution rather than the
+ whole statement.
+ </para>
+
+ <para>
+ However, prepared statements take time to prepare and consume
+ memory in the MySQL server until they are closed, so it is
+ important to use them properly. If you are only executing a
+ statement a few times, the overhead of creating a prepared
+ statement may not be worthwhile.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_query_cache_has_suboptimal_hit_rate">
+ <emphasis role="bold">Query Cache Has Sub-Optimal Hit
+ Rate</emphasis>
+ </para>
+
+ <para>
+ When enabled, the query cache should experience a high degree of
+ "hits", meaning that queries in the cache are being reused by
+ other user connections. A low hit rate may mean that not enough
+ memory is allocated to the cache, identical queries are not
+ being issued repeatedly to the server, or that the statements in
+ the query cache are invalidated too frequently by INSERT, UPDATE
+ or DELETE statements.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_query_cache_not_available">
+ <emphasis role="bold">Query Cache Not Available</emphasis>
+ </para>
+
+ <para>
+ MySQL can cache the results of SELECT statements in memory so
+ that they do not have to constantly be parsed and executed. If
+ your application often runs the same queries over and over,
+ caching the results can increase performance significantly. It's
+ important to use a version or binary of MySQL that supports the
+ query cache.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_query_cache_disabled">
+ <emphasis role="bold">Query Cache Not Enabled</emphasis>
+ </para>
+
+ <para>
+ Enabling the query cache can increase performance by 200% for
+ queries that are executed often and have large result sets.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_query_cache_potentially_undersized">
+ <emphasis role="bold">Query Cache Potentially
+ Undersized</emphasis>
+ </para>
+
+ <para>
+ When the Query Cache is full, and needs to add more queries to
+ the cache, it will make more room in the cache by freeing the
+ least recently used queries from the cache, and then inserting
+ the new queries. If this is happening often then you should
+ increase the size of the cache to avoid this constant
+ "swapping".
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_ram_usage_excessive">
+ <emphasis role="bold">RAM Usage Excessive</emphasis>
+ </para>
+
+ <para>
+ A reasonable amount of free memory is required for a system to
+ perform well. Without free memory, new processes and threads
+ cannot start, and the operating system may do excessive paging
+ (swapping blocks of memory to and from disk).
+ </para>
+
+ <para>
+ Default frequency 00:01:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_root_account_can_login_remotely">
+ <emphasis role="bold">Root Account Can Login Remotely</emphasis>
+ </para>
+
+ <para>
+ By default, MySQL includes a root account with unlimited
+ privileges that is typically used to administer the MySQL
+ server. If possible, accounts with this much power should not
+ allow remote logins in order to limit access to only those users
+ able to login to the machine on which MySQL is running. This
+ helps prevent unauthorized users from accessing and changing the
+ system.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_root_account_without_password">
+ <emphasis role="bold">Root Account Without Password</emphasis>
+ </para>
+
+ <para>
+ The root user account has unlimited privileges and is intended
+ for administrative tasks. Privileged accounts should have strong
+ passwords to prevent unauthorized users from accessing and
+ changing the system.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_upgrade_to_fix_bug_37426">
+ <emphasis role="bold">Row-based Replication Broken For UTF8 CHAR
+ Columns Longer Than 85 Characters</emphasis>
+ </para>
+
+ <para>
+ Due to bug #37426, row-based replication breaks when CHAR() UTF8
+ fields with a length greater than 85 characters are used.
+ </para>
+
+ <para>
+ This bug has been fixed in later versions of the MySQL server.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_security_alterations_user_privileges_granted">
+ <emphasis role="bold">Security Alterations Detected: User
+ Privileges Granted</emphasis>
+ </para>
+
+ <para>
+ For development environments, changes to database security
+ privileges may be a normal occurrence, but for production
+ environments it is wise to know when any security changes occur
+ with respect to database privileges, and to ensure that those
+ changes are authorized and required.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_security_alterations_user_privileges_revoked">
+ <emphasis role="bold">Security Alterations Detected: User
+ Privileges Revoked</emphasis>
+ </para>
+
+ <para>
+ For development environments, changes to database security
+ privileges may be a normal occurrence, but for production
+ environments it is wise to know when any security changes occur
+ with respect to database privileges, and to ensure that those
+ changes are authorized and required.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_security_alterations_detected">
+ <emphasis role="bold">Security Alterations Have Been
+ Detected</emphasis>
+ </para>
+
+ <para>
+ For development environments, changes to database security
+ privileges may be a normal occurrence, but for production
+ environments it is wise to know when any security changes occur
+ with respect to database privileges, and to ensure that those
+ changes are authorized and required.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_upgrade_to_fix_bug_31611">
+ <emphasis role="bold">Security Risk with BINLOG
+ statement</emphasis>
+ </para>
+
+ <para>
+ Due to bug #31611, any user can execute BINLOG statements, which
+ effectively gives them the ability to execute any SQL statement
+ regardless of the privileges associated with their user account
+ (i.e. as given by the GRANT statement). This allows any
+ connected user to get any privileges they want, edit any data
+ they want, add and drop tables, etc.
+ </para>
+
+ <para>
+ This bug has been fixed in later versions of the MySQL server.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_server_has_test_database">
+ <emphasis role="bold">Server Contains Default "test"
+ Database</emphasis>
+ </para>
+
+ <para>
+ By default, MySQL comes with a database named
+ <literal>test</literal> that anyone can access. This database is
+ intended only for testing and should be removed before moving
+ into a production environment. Because the default
+ <literal>test</literal> database can be accessed by any user and
+ has permissive privileges, it should be dropped immediately as
+ part of the installation process.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_server_has_accounts_without_password">
+ <emphasis role="bold">Server Has Accounts Without A
+ Password</emphasis>
+ </para>
+
+ <para>
+ Accounts without passwords are particularly dangerous because an
+ attacker needs to guess only a username. Assigning passwords to
+ all accounts helps prevent unauthorized users from accessing the
+ system.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_server_has_anonymous_account">
+ <emphasis role="bold">Server Has Anonymous Accounts</emphasis>
+ </para>
+
+ <para>
+ Anonymous MySQL accounts allow clients to connect to the server
+ without specifying a username. Since anonymous accounts are well
+ known in MySQL, removing them helps prevent unauthorized users
+ from accessing the system.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_server_has_root_account">
+ <emphasis role="bold">Server Includes A Root User
+ Account</emphasis>
+ </para>
+
+ <para>
+ By default, MySQL includes a root account with unlimited
+ privileges that is typically used to administer the MySQL
+ server. There is no reason this account must be named 'root'.
+ Accounts with this much power should not be easily discovered.
+ Since the root account is well known in MySQL, changing its name
+ helps prevent unauthorized users from accessing and changing the
+ system.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_server_enforced_data_integrity_checking_disabled">
+ <emphasis role="bold">Server-Enforced Data Integrity Checking
+ Disabled</emphasis>
+ </para>
+
+ <para>
+ SQL Modes define what SQL syntax MySQL should support and what
+ kind of data validation checks it should perform. If no SQL
+ modes are enabled this means there is no form of server-enforced
+ data integrity, which means incoming data that is invalid will
+ not be rejected by the server, but instead will be changed to
+ conform to the target column's default datatype. Note, however,
+ that beginning with MySQL 4.1, any client can change its own
+ session SQL mode value at any time.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_server_enforced_data_integrity_checking_not_strict">
+ <emphasis role="bold">Server-Enforced Data Integrity Checking
+ Not Strict</emphasis>
+ </para>
+
+ <para>
+ SQL Modes define what SQL syntax MySQL should support and what
+ kind of data validation checks it should perform. There are many
+ possible options that can be used in conjunction with each other
+ to specify varying degrees of syntax and data validation checks
+ the MySQL server will perform. However, to ensure the highest
+ level of confidence for data integrity, at least one of the
+ following should be included in the list: <literal>TRADITIONAL,
+ STRICT_TRANS_TABLES,</literal> or
+ <literal>STRICT_ALL_TABLES</literal>.
+ </para>
+
+ <para>
+ Note, however, that beginning with MySQL 4.1, any client can
+ change its own session SQL mode value at any time.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slave_detection_of_network_outages_too_high">
+ <emphasis role="bold">Slave Detection Of Network Outages Too
+ High</emphasis>
+ </para>
+
+ <para>
+ Slaves must deal with network connectivity outages that affect
+ the ability of the slave to get the latest data from the master,
+ and hence cause replication to fall behind. However, the slave
+ notices the network outage only after receiving no data from the
+ master for <literal>slave_net_timeout seconds</literal>. You may
+ want to decrease <literal>slave_net_timeout</literal> so the
+ outages -- and associated connection retries -- are detected and
+ resolved faster. The default for this parameter is 3600 seconds
+ (1 hour), which is too high for many environments.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slave_error_unknown_or_incorrect_time_zone">
+ <emphasis role="bold">Slave Error: Unknown or Incorrect Time
+ Zone</emphasis>
+ </para>
+
+ <para>
+ In order to use time zone names in conjunction with certain
+ statements, functions, and data types, you must configure the
+ server to understand those names by loading information from the
+ operating system's time zone files into a set of tables in the
+ mysql database. However, while the MySQL installation procedure
+ creates those time zone tables, it does not load them; they must
+ be loaded manually after installation.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slave_execution_position_too_far_behind_read_position">
+ <emphasis role="bold">Slave Execution Position Too Far Behind
+ Read Position</emphasis>
+ </para>
+
+ <para>
+ When a slave receives updates from its master, the I/O thread
+ stores the data in local files known as relay logs. The slave's
+ SQL thread reads the relay logs and executes the updates they
+ contain. If the position from which the SQL thread is reading is
+ way behind the position to which the I/O thread is currently
+ writing, it is a sign that replication is getting behind and
+ results of queries directed to the slave may not reflect the
+ latest changes made on the master.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slave_has_been_stopped">
+ <emphasis role="bold">Slave Has Been Stopped</emphasis>
+ </para>
+
+ <para>
+ If replication on a slave has been stopped, it means the slave
+ is not retrieving the latest statements from the master and it
+ is not executing those statements on the slave.
+ </para>
+
+ <para>
+ Default frequency 00:01:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slave_has_experienced_a_replication_error">
+ <emphasis role="bold">Slave Has Experienced A Replication
+ Error</emphasis>
+ </para>
+
+ <para>
+ When a slave receives updates from its master it must apply
+ those updates locally so the data on the slave matches that on
+ the server. If an error occurs while applying an update on a
+ slave, the data on the slave may not match that on the master
+ and it is an indication that replication may be broken.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slave_has_accounts_with_inappropriate_privileges">
+ <emphasis role="bold">Slave Has Login Accounts With
+ Inappropriate Privileges</emphasis>
+ </para>
+
+ <para>
+ Altering and dropping tables on a slave can break replication.
+ Unless the slave also hosts non-replicated tables, there is no
+ need for accounts with these privileges. As an alternative, you
+ should set the <literal>read_only</literal> flag
+ <literal>ON</literal> so the server allows no updates except
+ from users that have the SUPER privilege or from updates
+ performed by slave threads.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slave_has_problem_communicating_with_master">
+ <emphasis role="bold">Slave Has Problem Communicating With
+ Master</emphasis>
+ </para>
+
+ <para>
+ Slaves must connect to a master to get the latest data from the
+ master. If they cannot connect, or periodically have trouble
+ connecting, replication may fall behind (i.e. the slave may not
+ have the lastest data that was written to the master).
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slave_has_stopped_replicating">
+ <emphasis role="bold">Slave Has Stopped Replicating</emphasis>
+ </para>
+
+ <para>
+ If neither the slave I/O thread nor the slave SQL threads are
+ running, it means the slave is not getting the latest statements
+ from the master and it is not executing those statements on the
+ slave, and thus replication has stopped entirely.
+ </para>
+
+ <para>
+ Default frequency 00:01:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slave_io_thread_not_running">
+ <emphasis role="bold">Slave I/O Thread Not Running</emphasis>
+ </para>
+
+ <para>
+ The slave I/O thread is the thread that retrieves statements
+ from the master's binary log and records them into the slave's
+ relay log. If this thread isn't running, it means the slave is
+ not able to retrieve the latest data from the master.
+ </para>
+
+ <para>
+ Default frequency 00:01:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slave_not_configured_as_read_only">
+ <emphasis role="bold">Slave Not Configured As Read
+ Only</emphasis>
+ </para>
+
+ <para>
+ Arbitrary or unintended updates to a slave may break replication
+ or cause a slave to be inconsistent with respect to its master.
+ Making a slave <literal>read_only</literal> can be useful to
+ ensure that a slave accepts updates only from its master server
+ and not from clients; it minimizes the possibility of unintended
+ updates.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slave_relay_log_space_is_very_large">
+ <emphasis role="bold">Slave Relay Log Space Is Very
+ Large</emphasis>
+ </para>
+
+ <para>
+ When a slave receives updates from its master, the I/O thread
+ stores the data in local files known as relay logs. The slave's
+ SQL thread reads the relay logs and executes the updates they
+ contain. After the SQL thread has executed all the updates in a
+ relay log, the file is no longer needed and can be deleted to
+ conserve disk space.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slave_relay_logs_not_automatically_purged">
+ <emphasis role="bold">Slave Relay Logs Not Automatically
+ Purged</emphasis>
+ </para>
+
+ <para>
+ When a slave receives updates from its master, the I/O thread
+ stores the data in local files known as relay logs. The slave's
+ SQL thread reads the relay logs and executes the updates they
+ contain. After the SQL thread has executed all the updates in a
+ relay log, the file is no longer needed and can be deleted to
+ conserve disk space.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slave_sql_thread_not_running">
+ <emphasis role="bold">Slave SQL Thread Not Running</emphasis>
+ </para>
+
+ <para>
+ The slave SQL thread is the thread that reads statements from
+ the slave's relay log and executes them to bring the slave in
+ sync with the master. If this thread isn't running, it means the
+ slave is not able to apply the latest changes it has read from
+ the master, and results of queries directed to the slave may not
+ reflect the latest changes made on the master.
+ </para>
+
+ <para>
+ Default frequency 00:01:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slave_sql_thread_reading_from_older_relay_log_than_io_thread">
+ <emphasis role="bold">Slave SQL Thread Reading From Older Relay
+ Log Than I/O Thread</emphasis>
+ </para>
+
+ <para>
+ When a slave receives updates from its master, the I/O thread
+ stores the data in local files known as relay logs. The slave's
+ SQL thread reads the relay logs and executes the updates they
+ contain. If the SQL thread is reading from an older relay log
+ than the one to which the I/O thread is currently writing, it is
+ a sign that replication is getting behind and results of queries
+ directed to the slave may not reflect the latest changes made on
+ the master.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slave_too_far_behind_master">
+ <emphasis role="bold">Slave Too Far Behind Master</emphasis>
+ </para>
+
+ <para>
+ If a slave is too far behind the master, results of queries
+ directed to the slave may not reflect the latest changes made on
+ the master.
+ </para>
+
+ <para>
+ Default frequency 00:01:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slave_waiting_to_free_relay_log_space">
+ <emphasis role="bold">Slave Waiting To Free Relay Log
+ Space</emphasis>
+ </para>
+
+ <para>
+ For slaves with limited disk space you can place a limit on how
+ large the replication relay log can grow. When the limit is
+ reached, the I/O thread stops reading binary log events from the
+ master server until the SQL thread has caught up and deleted
+ some unprocessed relay logs. While this protects MySQL from
+ filling up the disk, it means replication is delayed and the
+ slave will fall behind the master.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slave_without_replication_slave_account">
+ <emphasis role="bold">Slave Without REPLICATION SLAVE
+ Accounts</emphasis>
+ </para>
+
+ <para>
+ If the master ever fails, you may want to use one of the slaves
+ as the new master. An account with the REPLICATION SLAVE
+ privilege must exist for a server to act as a replication master
+ (so a slave can connect to it), so it's a good idea to create
+ this account on your slaves to prepare it to take over for a
+ master if needed.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_slow_query_log_not_enabled">
+ <emphasis role="bold">Slow Query Log Not Enabled</emphasis>
+ </para>
+
+ <para>
+ The slow query log can be used to identify queries that take a
+ long time to complete.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_stored_procs_found_with_select_star_syntax">
+ <emphasis role="bold">Stored Procedures Found With SELECT *
+ Syntax</emphasis>
+ </para>
+
+ <para>
+ Best practices for SQL coding state that no query should be
+ issued with SELECT *. Reasons include:{ * To ensure that only
+ the necessary columns are returned from a SQL statement, the
+ actual column names should be specifically entered. This cuts
+ down on unwanted network traffic as only columns necessary for
+ query satisfaction are present.{ * If the underlying table has
+ columns added or removed, the query itself may malfunction if
+ cursors or other such application objects are used.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_upgrade_to_fix_bug_18630">
+ <emphasis role="bold">Stored Routine Runs In Definer''s Rather
+ Than Caller''s Security Context</emphasis>
+ </para>
+
+ <para>
+ Due to bug 18630, a stored routine created by one user and then
+ made accessible to a different user using GRANT EXECUTE could be
+ executed by that user with the privileges of the routine's
+ definer.
+ </para>
+
+ <para>
+ This bug has been fixed in later versions of the MySQL server.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_symlinks_are_enabled">
+ <emphasis role="bold">Symlinks Are Enabled</emphasis>
+ </para>
+
+ <para>
+ You can move tables and databases from the database directory to
+ other locations and replace them with symbolic links to the new
+ locations. You might want to do this, for example, to move a
+ database to a file system with more free space or to increase
+ the speed of your system by spreading your tables to different
+ disks.
+ </para>
+
+ <para>
+ However, symlinks can compromise security. This is especially
+ important if you run mysqld as root, because anyone who has
+ write access to the server's data directory could then delete
+ any file in the system!
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_table_cache_not_optimal">
+ <emphasis role="bold">Table Cache Not Optimal</emphasis>
+ </para>
+
+ <para>
+ MySQL is multi-threaded, so there may be many clients issuing
+ queries for a given table simultaneously. To minimize the
+ problem with multiple client threads having different states on
+ the same table, the table is opened independently by each
+ concurrent thread.
+ </para>
+
+ <para>
+ The table cache is used to cache file descriptors for open
+ tables and there is a single cache shared by all clients.
+ Increasing the size of the table cache allows mysqld to keep
+ more tables open simultanously by reducing the number of file
+ open and close operations that must be done. If the value of
+ <literal>Open_tables</literal> is approaching the value of
+ <literal>table_cache</literal>, this may indicate performance
+ problems.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_table_cache_too_low_for_startup">
+ <emphasis role="bold">Table Cache Set Too Low For
+ Startup</emphasis>
+ </para>
+
+ <para>
+ The table cache size controls the number of open tables that can
+ occur at any one time on the server. MySQL will work to open and
+ close tables as needed, however you should avoid having the
+ table cache set too low, causing MySQL to constantly open and
+ close tables to satisfy object access.
+ </para>
+
+ <para>
+ If the table cache limit has been exceeded by the number of
+ tables opened in the first three hours of service, then the
+ table cache size is likely set too low.
+ </para>
+
+ <para>
+ Default frequency 00:30:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_table_lock_contention_excessive">
+ <emphasis role="bold">Table Lock Contention Excessive</emphasis>
+ </para>
+
+ <para>
+ Performance can be degraded if the percentage of table
+ operations that have to wait for a lock is high compared to the
+ overall number of locks. This can happen when using a
+ table-level locking storage engine, such as MyISAM, instead of a
+ row-level locking storage engine.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_table_scans_excessive">
+ <emphasis role="bold">Table Scans Excessive</emphasis>
+ </para>
+
+ <para>
+ The target server does not appear to be using indexes
+ efficiently. The values of Handler_read_rnd_next and
+ Handler_read_rnd together - which reflect the number of rows
+ read via full table scans - are high compared to the sum of
+ Handler variables which denote all row accesses - such as
+ Handler_read_key, Handler_read_next etc. You should examine your
+ tables and queries for proper use of indexes.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_tables_found_without_primary_keys">
+ <emphasis role="bold">Tables Found with No Primary or Unique
+ Keys</emphasis>
+ </para>
+
+ <para>
+ A primary or unique key of a relational table uniquely
+ identifies each record in the table. Except in very unusual
+ circumstances, every database table should have one or more
+ columns designated as the primary key or as a unique key, and it
+ is common practice to declare one.
+ </para>
+
+ <para>
+ Default frequency 12:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_temp_tables_to_disk_ratio_excessive">
+ <emphasis role="bold">Temporary Tables To Disk Ratio
+ Excessive</emphasis>
+ </para>
+
+ <para>
+ If the space required to build a temporary table exceeds either
+ <literal>tmp_table_size</literal> or
+ <literal>max_heap_table_size</literal>, MySQL creates a
+ disk-based table in the server's tmpdir directory. Also, tables
+ that have TEXT or BLOB columns are automatically placed on disk.
+ </para>
+
+ <para>
+ For performance reasons it is ideal to have most temporary
+ tables created in memory, leaving exceedingly large temporary
+ tables to be created on disk.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_thread_cache_not_enabled">
+ <emphasis role="bold">Thread Cache Not Enabled</emphasis>
+ </para>
+
+ <para>
+ Each connection to the MySQL database server runs in its own
+ thread. Thread creation takes time, so rather than killing the
+ thread when a connection is closed, the server can keep the
+ thread in its thread cache and use it for a new connection
+ later.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_thread_cache_size_not_optimal">
+ <emphasis role="bold">Thread Cache Size May Not Be
+ Optimal</emphasis>
+ </para>
+
+ <para>
+ Each connection to the MySQL database server runs in its own
+ thread. Thread creation takes time, so rather than killing the
+ thread when a connection is closed, the server can keep the
+ thread in its thread cache and use it for a new connection
+ later.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_too_many_concurrent_queries_running">
+ <emphasis role="bold">Too Many Concurrent Queries
+ Running</emphasis>
+ </para>
+
+ <para>
+ Too many active queries indicates there is a severe load on the
+ server, and may be a sign of lock contention or unoptimized SQL
+ queries.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_upgrade_to_fix_bug_27878">
+ <emphasis role="bold">Use Of View Overrides Column Update
+ Privileges On Underlying Table</emphasis>
+ </para>
+
+ <para>
+ Due to bug #27878, by using a view, a user who only has
+ privileges to update a given column of a table is able to update
+ any column of that table, even though the view is defined with
+ SQL SECURITY INVOKER. Also, use of a view could allow a user to
+ gain update privileges for tables in other databases.
+ </para>
+
+ <para>
+ This bug has been fixed in later versions of the MySQL server.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_upgrade_to_fix_bug_27337">
+ <emphasis role="bold">User Can Gain Privileges By Running Stored
+ Routine Declared Using SQL SECURITY INVOKER</emphasis>
+ </para>
+
+ <para>
+ Due to bug #27337, if a stored routine was declared using SQL
+ SECURITY INVOKER, a user who invoked the routine could gain
+ privileges. For example, a user without the CREATE privilege on
+ a certain database could gain that privilege after invoking a
+ stored routine.
+ </para>
+
+ <para>
+ This bug has been fixed in later versions of the MySQL server.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_user_has_rights_to_database_that_does_not_exist">
+ <emphasis role="bold">User Has Rights To Database That Does Not
+ Exist</emphasis>
+ </para>
+
+ <para>
+ When a database is dropped, user privileges on the database are
+ not automatically dropped. This has security implications as
+ that user will regain privileges if a database with the same
+ name is created in the future, which may not be the intended
+ result.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_upgrade_to_fix_bug_23675">
+ <emphasis role="bold">User With Only ALTER Privilege On
+ Partitioned Table Can Obtain SELECT Privilege
+ Information</emphasis>
+ </para>
+
+ <para>
+ Due to bug #23675, a user with only the ALTER privilege on a
+ partitioned table could obtain information about the table that
+ should require the SELECT privilege.
+ </para>
+
+ <para>
+ This bug has been fixed in later versions of the MySQL server.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_users_can_view_all_databases">
+ <emphasis role="bold">Users Can View All Databases On MySQL
+ Server</emphasis>
+ </para>
+
+ <para>
+ The SHOW DATABASES privilege should be granted only to users who
+ need to see all the databases on a MySQL Server. It is
+ recommended that the MySQL Server be started with the
+ <literal>--skip-show-database</literal> option enabled to
+ prevent anyone from using the SHOW DATABASES statement unless
+ they have been specifically granted the SHOW DATABASES
+ privilege.
+ </para>
+
+ <para>
+ Note: If a user is granted any global privilege, such as CREATE
+ TEMPORARY TABLES or LOCK TABLES, they are automatically given
+ the ability to show databases unless the server is started with
+ the --skip-show-database option enabled. DBAs should be aware of
+ this fact, in the event that any applications make use of
+ temporary tables.
+ </para>
+
+ <para>
+ Default frequency 00:05:00
+ </para>
+ </listitem>
+
+ <listitem>
+ <para id="mem_advisorref_xa_distributed_tx_support_enabled">
+ <emphasis role="bold">XA Distributed Transaction Support Enabled
+ For InnoDB</emphasis>
+ </para>
+
+ <para>
+ XA Distributed Transaction support is turned on by default. If
+ you are not using this feature, note that it adds an extra fsync
+ for each transaction and may adversely affect performance.
+ </para>
+
+ <para>
+ Default frequency 06:00:00
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ <emphasis role="bold">CPU Utilization</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_cpu_utilization">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>CPU Utilization</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>%</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Kernel</emphasis></entry>
+ <entry>sys/(sys+user+wait+idle)*100</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Wait I/O</emphasis></entry>
+ <entry>wait/(sys+user+wait+idle)*100</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">User</emphasis></entry>
+ <entry>user/(sys+user+wait+idle)*100</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Total</emphasis></entry>
+ <entry>(sys+user+wait)/(sys+user+wait+idle)*100</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">sys</emphasis></entry>
+ <entry>os:cpu:cpu_sys</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">user</emphasis></entry>
+ <entry>os:cpu:cpu_user</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">wait</emphasis></entry>
+ <entry>os:cpu:cpu_wait</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">idle</emphasis></entry>
+ <entry>os:cpu:cpu_idle</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Connections</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_connections">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Connections</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry># connections</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Total</emphasis></entry>
+ <entry>connected</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Cached</emphasis></entry>
+ <entry>cached</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Running</emphasis></entry>
+ <entry>running</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">connected</emphasis></entry>
+ <entry>mysql:status:Threads_connected</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">running</emphasis></entry>
+ <entry>mysql:status:Threads_running</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">cached</emphasis></entry>
+ <entry>mysql:status:Threads_cached</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Connections - Aborted</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_connections_aborted">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Connections - Aborted</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>total/min</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Clients</emphasis></entry>
+ <entry>clients</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Connections</emphasis></entry>
+ <entry>connections</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">clients</emphasis></entry>
+ <entry>mysql:status:Aborted_clients</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">connections</emphasis></entry>
+ <entry>mysql:status:Aborted_connects</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Connections - Cache</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_thread_cache">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Connections - Cache</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>total/min</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Threads Created</emphasis></entry>
+ <entry>tcreated</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Connections</emphasis></entry>
+ <entry>connections</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">tcreated</emphasis></entry>
+ <entry>mysql:status:Threads_created</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">connections</emphasis></entry>
+ <entry>mysql:status:Connections</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Connections - Maximum</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_connections_max">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Connections - Maximum</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>total</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Allowed</emphasis></entry>
+ <entry>max_connections_allowed</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Used</emphasis></entry>
+ <entry>max_connections_used</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">max_connections_allowed</emphasis></entry>
+ <entry>mysql:variables:max_connections</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">max_connections_used</emphasis></entry>
+ <entry>mysql:status:Max_used_connections</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Database Activity</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_database_activity">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Database Activity</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>avg statements/sec</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Select</emphasis></entry>
+ <entry>(selects/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Update</emphasis></entry>
+ <entry>((updates+update_multi)/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Insert</emphasis></entry>
+ <entry>((inserts+insert_selects)/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Replace</emphasis></entry>
+ <entry>((replaces+replace_selects)/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Delete</emphasis></entry>
+ <entry>((deletes+delete_multi)/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Call</emphasis></entry>
+ <entry>((call_proc)/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">selects</emphasis></entry>
+ <entry>mysql:status:Com_select</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">inserts</emphasis></entry>
+ <entry>mysql:status:Com_insert</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">insert_selects</emphasis></entry>
+ <entry>mysql:status:Com_insert_select</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">updates</emphasis></entry>
+ <entry>mysql:status:Com_update</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">update_multi</emphasis></entry>
+ <entry>mysql:status:Com_update_multi</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">replaces</emphasis></entry>
+ <entry>mysql:status:Com_replace</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">replace_selects</emphasis></entry>
+ <entry>mysql:status:Com_replace_select</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">deletes</emphasis></entry>
+ <entry>mysql:status:Com_delete</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">delete_multi</emphasis></entry>
+ <entry>mysql:status:Com_delete_multi</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">call_proc</emphasis></entry>
+ <entry>mysql:status:Com_call_procedure</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Hit Ratios</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_hit_ratios">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Hit Ratios</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>%</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">InnoDB Buffer</emphasis></entry>
+ <entry>100-((iReads / (iReadRequests+1))*100)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Key Cache</emphasis></entry>
+ <entry>(100-((keyReads / (keyReadRequests+1))*100)) * (keyReadRequests >=
+ keyReads)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Query Cache</emphasis></entry>
+ <entry>(qHits/(qHits+qInserts+1))*100</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Thread Cache</emphasis></entry>
+ <entry>100-((tcreated / (connections+1))*100)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">qHits</emphasis></entry>
+ <entry>mysql:status:Qcache_hits</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">qInserts</emphasis></entry>
+ <entry>mysql:status:Qcache_inserts</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">keyReads</emphasis></entry>
+ <entry>mysql:status:Key_reads</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">keyReadRequests</emphasis></entry>
+ <entry>mysql:status:Key_read_requests</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">iReads</emphasis></entry>
+ <entry>mysql:status:Innodb_buffer_pool_reads</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">iReadRequests</emphasis></entry>
+ <entry>mysql:status:Innodb_buffer_pool_read_requests</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">tcreated</emphasis></entry>
+ <entry>mysql:status:Threads_created</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">connections</emphasis></entry>
+ <entry>mysql:status:Connections</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">InnoDB Adaptive Hash Index Memory</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_innodb_adaptive_hash_memory">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>InnoDB Adaptive Hash Index Memory</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>MB</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Hash Node Size</emphasis></entry>
+ <entry>( hash_size * 16384 ) / 1024 / 1024</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">hash_size</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_hash_node_heap</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">InnoDB Adaptive Hash Index Searches</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_innodb_adaptive_hash_searches">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>InnoDB Adaptive Hash Index Searches</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>searches/sec</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">hash searches</emphasis></entry>
+ <entry>hash</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">non-hash searches</emphasis></entry>
+ <entry>nonhash</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">hash</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_hash_searches_per_sec</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">nonhash</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_non_hash_searches_per_sec</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">InnoDB Adaptive Hash Index Usage</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_innodb_adaptive_hash_cells">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>InnoDB Adaptive Hash Index Usage</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>cells</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">total cells</emphasis></entry>
+ <entry>size</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">used cells</emphasis></entry>
+ <entry>used</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">size</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_hash_table_size</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">used</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_hash_used_cells</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">InnoDB Buffer Pool</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_innodb_buffer_pool">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>InnoDB Buffer Pool</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>MB</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Total Size</emphasis></entry>
+ <entry>(size*16384)/(1024*1024)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Modified</emphasis></entry>
+ <entry>(modified*16384)/(1024*1024)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Used</emphasis></entry>
+ <entry>(used*16384)/(1024*1024)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">size</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_bp_size</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">used</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_bp_db_pages</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">modified</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_bp_modified_pages</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">InnoDB OS File Access</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_innodb_os_file_access">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>InnoDB OS File Access</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>avg operations/sec</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">File Reads</emphasis></entry>
+ <entry>(read/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">File fsync()</emphasis></entry>
+ <entry>(fsync/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">File Writes</emphasis></entry>
+ <entry>(write/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">fsync</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_io_os_file_fsyncs</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">read</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_io_os_file_reads</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">write</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_io_os_file_writes</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">InnoDB Row Details</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_innodb_row_details">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>InnoDB Row Details</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>avg rows/sec</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Rows Read</emphasis></entry>
+ <entry>(read/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Rows Updated</emphasis></entry>
+ <entry>(udpated/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Rows Inserted</emphasis></entry>
+ <entry>(inserted/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Rows Deleted </emphasis></entry>
+ <entry>(deleted/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">read</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_rows_read</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">inserted</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_rows_inserted</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">updated</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_rows_updated</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">deleted</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_rows_deleted</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">InnoDB Semaphores</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_innodb_semaphores">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>InnoDB Semaphores</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>avg waits/sec</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Spin Waits</emphasis></entry>
+ <entry>(swaits/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">OS Waits</emphasis></entry>
+ <entry>(oswaits/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Spin Rounds</emphasis></entry>
+ <entry>(srounds/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">swaits</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_sem_mutex_spin_waits</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">srounds</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_sem_mutex_rounds</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">oswaits</emphasis></entry>
+ <entry>mysql:innodbstatus:innodb_sem_mutex_os_waits</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">KBytes In/Out</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_kbytes_in_out">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>KBytes In/Out</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>avg kbytes/sec</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Received</emphasis></entry>
+ <entry>((bytesIn/1024)/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Total</emphasis></entry>
+ <entry>(((bytesIn+bytesOut)/1024)/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Sent</emphasis></entry>
+ <entry>((bytesOut/1024)/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">bytesIn</emphasis></entry>
+ <entry>mysql:status:Bytes_received</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">bytesOut</emphasis></entry>
+ <entry>mysql:status:Bytes_sent</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Load Average</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_load_average">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Load Average</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>Load Average</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">1</emphasis></entry>
+ <entry>zero</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">15</emphasis></entry>
+ <entry>two</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">5</emphasis></entry>
+ <entry>one</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">zero</emphasis></entry>
+ <entry>os:loadavg:0</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">one</emphasis></entry>
+ <entry>os:loadavg:1</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">two</emphasis></entry>
+ <entry>os:loadavg:2</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Memory Usage - Agent</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_agent_lua_mem_usage">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Memory Usage - Agent</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>MB</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Lua</emphasis></entry>
+ <entry>lua_mem_size / 1024 / 1024</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Agent</emphasis></entry>
+ <entry>agent_mem_size / 1024 / 1024</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">lua_mem_size</emphasis></entry>
+ <entry>agent:lua:mem_size</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">agent_mem_size</emphasis></entry>
+ <entry>agent:proc:mem_resident</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Memory Usage - OS Resident</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_ram_usage">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Memory Usage - OS Resident</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>MB</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Total</emphasis></entry>
+ <entry>ram_total/(1024*1024)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Used</emphasis></entry>
+ <entry>(ram_total-ram_unused)/(1024*1024)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">ram_total</emphasis></entry>
+ <entry>os:mem:ram_total</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">ram_unused</emphasis></entry>
+ <entry>os:mem:ram_unused</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Memory Usage - OS Virtual</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_swap_usage">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Memory Usage - OS Virtual</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>MB</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Total</emphasis></entry>
+ <entry>swap_total/(1024*1024)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Used</emphasis></entry>
+ <entry>(swap_total-swap_unused)/(1024*1024)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">swap_total</emphasis></entry>
+ <entry>os:mem:swap_total</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">swap_unused</emphasis></entry>
+ <entry>os:mem:swap_unused</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">MyISAM Key Buffer Usage</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_myisam_key_buffer_usage">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>MyISAM Key Buffer Usage</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>MB</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Total Size</emphasis></entry>
+ <entry>key_buffer/1024/1024</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Unused</emphasis></entry>
+ <entry>(blk_size*unused)/1024/1024</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Used</emphasis></entry>
+ <entry>(blk_size*used)/1024/1024</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Allocated</emphasis></entry>
+ <entry>((blk_size)*(used+unused))/1024/1024</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">key_buffer</emphasis></entry>
+ <entry>mysql:variables:key_buffer_size</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">blk_size</emphasis></entry>
+ <entry>mysql:variables:key_cache_block_size</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">unused</emphasis></entry>
+ <entry>mysql:status:Key_blocks_unused</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">used</emphasis></entry>
+ <entry>mysql:status:Key_blocks_used</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Opened Tables</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_opened_tables">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Opened Tables</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>total/min</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Opened Tables</emphasis></entry>
+ <entry>openedTables</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">openedTables</emphasis></entry>
+ <entry>mysql:status:Opened_tables</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Query Cache Blocks</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_query_cache_blocks">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Query Cache Blocks</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>num blocks</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Size</emphasis></entry>
+ <entry>size_blocks</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Free</emphasis></entry>
+ <entry>free_blocks</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">size_blocks</emphasis></entry>
+ <entry>mysql:status:Qcache_total_blocks</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">free_blocks</emphasis></entry>
+ <entry>mysql:status:Qcache_free_blocks</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Query Cache Efficiency</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_query_cache_efficiency">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Query Cache Efficiency</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>avg cache ops/sec</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Hits</emphasis></entry>
+ <entry>(hits/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Not Cached</emphasis></entry>
+ <entry>(not_cached/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Inserts</emphasis></entry>
+ <entry>(inserts/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">hits</emphasis></entry>
+ <entry>mysql:status:Qcache_hits</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">inserts</emphasis></entry>
+ <entry>mysql:status:Qcache_inserts</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">not_cached</emphasis></entry>
+ <entry>mysql:status:Qcache_not_cached</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Query Cache Lowmem Prunes</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_query_cache_lowmem_prunes">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Query Cache Lowmem Prunes</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>avg cache ops/sec</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Lowmem Prunes</emphasis></entry>
+ <entry>(deletes/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">deletes</emphasis></entry>
+ <entry>mysql:status:Qcache_lowmem_prunes</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Query Cache Memory</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_query_cache_memory">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Query Cache Memory</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>MB</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Size MB</emphasis></entry>
+ <entry>size/(1024*1024)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Free MB</emphasis></entry>
+ <entry>free/(1024*1024)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">size</emphasis></entry>
+ <entry>mysql:variables:query_cache_size</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">free</emphasis></entry>
+ <entry>mysql:status:Qcache_free_memory</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Query Cache Queries</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_query_cache_queries_in_cache">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Query Cache Queries</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>num queries</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Queries in Cache</emphasis></entry>
+ <entry>queries</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">queries</emphasis></entry>
+ <entry>mysql:status:Qcache_queries_in_cache</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Replication Delay</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_slave_seconds_behind">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Replication Delay</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>total seconds</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Seconds Behind Master</emphasis></entry>
+ <entry>sbehind</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">sbehind</emphasis></entry>
+ <entry>mysql:slavestatus:Seconds_Behind_Master</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Row Accesses</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_row_accesses">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Row Accesses</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>avg rows/sec</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Average Rows Per Query</emphasis></entry>
+ <entry>((first+key+next+prev+hread_rnd+hread_rnd_next+sort_rows) / questions)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Rows Read via Full Scan</emphasis></entry>
+ <entry>((hread_rnd+hread_rnd_next)/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Rows Read via Indexes</emphasis></entry>
+ <entry>((first+key+next+prev)/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">first</emphasis></entry>
+ <entry>mysql:status:Handler_read_first</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">key</emphasis></entry>
+ <entry>mysql:status:Handler_read_key</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">next</emphasis></entry>
+ <entry>mysql:status:Handler_read_next</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">prev</emphasis></entry>
+ <entry>mysql:status:Handler_read_prev</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">hread_rnd</emphasis></entry>
+ <entry>mysql:status:Handler_read_rnd</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">hread_rnd_next</emphasis></entry>
+ <entry>mysql:status:Handler_read_rnd_next</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">sort_rows</emphasis></entry>
+ <entry>mysql:status:Sort_rows</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">questions</emphasis></entry>
+ <entry>mysql:status:Questions</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Row Writes</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_row_writes">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Row Writes</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>avg rows/sec</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Rows Inserted</emphasis></entry>
+ <entry>(write/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Rows Deleted</emphasis></entry>
+ <entry>(delete/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Rows Updated</emphasis></entry>
+ <entry>(update/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">write</emphasis></entry>
+ <entry>mysql:status:Handler_write</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">delete</emphasis></entry>
+ <entry>mysql:status:Handler_delete</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">update</emphasis></entry>
+ <entry>mysql:status:Handler_update</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Sort Activity</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_sorting">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Sort Activity</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>total/min</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Merge Passes</emphasis></entry>
+ <entry>Sort_merge_passes</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Scan</emphasis></entry>
+ <entry>Sort_scan</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range</emphasis></entry>
+ <entry>Sort_range</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Sort_merge_passes</emphasis></entry>
+ <entry>mysql:status:Sort_merge_passes</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Sort_range</emphasis></entry>
+ <entry>mysql:status:Sort_range</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Sort_scan</emphasis></entry>
+ <entry>mysql:status:Sort_scan</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Table Lock Wait Ratio</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_lock_wait_ratio">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Table Lock Wait Ratio</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>lock wait %</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Wait Ratio</emphasis></entry>
+ <entry>((lock_waits/lock_immediate)*100)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">lock_waits</emphasis></entry>
+ <entry>mysql:status:Table_locks_waited</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">lock_immediate</emphasis></entry>
+ <entry>mysql:status:Table_locks_immediate</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Table Locks</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_table_locks">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Table Locks</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>avg locks/sec</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Waited</emphasis></entry>
+ <entry>(locks_waited/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Immediate</emphasis></entry>
+ <entry>(locks_immediate/60)</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">locks_waited</emphasis></entry>
+ <entry>mysql:status:Table_locks_waited</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">locks_immediate</emphasis></entry>
+ <entry>mysql:status:Table_locks_immediate</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ <emphasis role="bold">Temporary Tables</emphasis>
+ </para>
+
+ <informaltable id="mem_graphref_temporary_tables">
+ <tgroup cols="2">
+ <colspec colname="title" colwidth="40*"/>
+ <colspec colname="content" colwidth="60*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Name</emphasis></entry>
+ <entry>Temporary Tables</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Range Label</emphasis></entry>
+ <entry>total/min</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Series</emphasis></entry>
+ <entry><emphasis role="bold">Expression</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Memory Temp Tables</emphasis></entry>
+ <entry>memoryTempTables</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Disk Temp Tables</emphasis></entry>
+ <entry>diskTempTables</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">Variables</emphasis></entry>
+ <entry><emphasis role="bold">Data Item</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">memoryTempTables</emphasis></entry>
+ <entry>mysql:status:Created_tmp_tables</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">diskTempTables</emphasis></entry>
+ <entry>mysql:status:Created_tmp_disk_tables</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+</section>
Modified: trunk/mysql-monitor-common/mem-reference-core.xml
===================================================================
--- trunk/mysql-monitor-common/mem-reference-core.xml 2009-09-21 13:50:21 UTC (rev 16697)
+++ trunk/mysql-monitor-common/mem-reference-core.xml 2009-09-21 13:52:41 UTC (rev 16698)
Changed blocks: 1, Lines Added: 2, Lines Deleted: 0; 477 bytes
@@ -824,6 +824,8 @@
</section>
+<xi:include href="mem-reference-advgraph.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
<!--
<section id="mem-deployment-security">
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r16698 - trunk/mysql-monitor-common | martin.brown | 21 Sep |