MySQL 慢查询日志分析
1. pt-query-digest分析慢查询日志
pt-query-digest --report slow.log
2. 报告最近半个小时的慢查询:
pt-query-digest --report --since 1800s slow.log
3. 报告一个时间段的慢查询:
pt-query-digest --report --since '2013-02-10 21:48:59' --until '2013-02-16 02:33:50' slow.log
4. 报告只含select语句的慢查询:
pt-query-digest --filter '$event->{fingerprint} =~ m/^select/i' slow.log
5. 报告针对某个用户的慢查询:
pt-query-digest --filter '($event->{user} || "") =~ m/^root/i' slow.log
6. 报告所有的全表扫描或full join的慢查询:
pt-query-digest --filter '(($event->{Full_scan} || "") eq "yes") || (($event->{Full_join} || "") eq "yes")' slow.log
更多filter的 事件属性
将慢查询日志的分析结果可视化
使用pt-query-digest分析慢查询日志并将查询分析数据保存到MySQL数据库表中.然后使用 Query-Digest-UI 来展示分析结果.
由于Query-Digest-UI是基于PHP的Web应用程序,因此需要LAMP环境的支持.
查询分析结果可视化步骤如下: 1)创建相关数据库表
-- install.sql-- Create the database needed for the Query-Digest-UIDROP DATABASE IF EXISTS slow_query_log;CREATE DATABASE slow_query_log;USE slow_query_log;-- Create the global query review tableCREATE TABLE `global_query_review` (`checksum` bigint(20) unsigned NOT NULL,`fingerprint` text NOT NULL,`sample` longtext NOT NULL,`first_seen` datetime DEFAULT NULL,`last_seen` datetime DEFAULT NULL,`reviewed_by` varchar(20) DEFAULT NULL,`reviewed_on` datetime DEFAULT NULL,`comments` text,`reviewed_status` varchar(24) DEFAULT NULL,PRIMARY KEY (`checksum`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- Create the historical query review tableCREATE TABLE `global_query_review_history` (`hostname_max` varchar(64) NOT NULL,`db_max` varchar(64) DEFAULT NULL,`checksum` bigint(20) unsigned NOT NULL,`sample` longtext NOT NULL,`ts_min` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',`ts_max` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',`ts_cnt` float DEFAULT NULL,`Query_time_sum` float DEFAULT NULL,`Query_time_min` float DEFAULT NULL,`Query_time_max` float DEFAULT NULL,`Query_time_pct_95` float DEFAULT NULL,`Query_time_stddev` float DEFAULT NULL,`Query_time_median` float DEFAULT NULL,`Lock_time_sum` float DEFAULT NULL,`Lock_time_min` float DEFAULT NULL,`Lock_time_max` float DEFAULT NULL,`Lock_time_pct_95` float DEFAULT NULL,`Lock_time_stddev` float DEFAULT NULL,`Lock_time_median` float DEFAULT NULL,`Rows_sent_sum` float DEFAULT NULL,`Rows_sent_min` float DEFAULT NULL,`Rows_sent_max` float DEFAULT NULL,`Rows_sent_pct_95` float DEFAULT NULL,`Rows_sent_stddev` float DEFAULT NULL,`Rows_sent_median` float DEFAULT NULL,`Rows_examined_sum` float DEFAULT NULL,`Rows_examined_min` float DEFAULT NULL,`Rows_examined_max` float DEFAULT NULL,`Rows_examined_pct_95` float DEFAULT NULL,`Rows_examined_stddev` float DEFAULT NULL,`Rows_examined_median` float DEFAULT NULL,`Rows_affected_sum` float DEFAULT NULL,`Rows_affected_min` float DEFAULT NULL,`Rows_affected_max` float DEFAULT NULL,`Rows_affected_pct_95` float DEFAULT NULL,`Rows_affected_stddev` float DEFAULT NULL,`Rows_affected_median` float DEFAULT NULL,`Rows_read_sum` float DEFAULT NULL,`Rows_read_min` float DEFAULT NULL,`Rows_read_max` float DEFAULT NULL,`Rows_read_pct_95` float DEFAULT NULL,`Rows_read_stddev` float DEFAULT NULL,`Rows_read_median` float DEFAULT NULL,`Merge_passes_sum` float DEFAULT NULL,`Merge_passes_min` float DEFAULT NULL,`Merge_passes_max` float DEFAULT NULL,`Merge_passes_pct_95` float DEFAULT NULL,`Merge_passes_stddev` float DEFAULT NULL,`Merge_passes_median` float DEFAULT NULL,`InnoDB_IO_r_ops_min` float DEFAULT NULL,`InnoDB_IO_r_ops_max` float DEFAULT NULL,`InnoDB_IO_r_ops_pct_95` float DEFAULT NULL,`InnoDB_IO_r_bytes_pct_95` float DEFAULT NULL,`InnoDB_IO_r_bytes_stddev` float DEFAULT NULL,`InnoDB_IO_r_bytes_median` float DEFAULT NULL,`InnoDB_IO_r_wait_min` float DEFAULT NULL,`InnoDB_IO_r_wait_max` float DEFAULT NULL,`InnoDB_IO_r_wait_pct_95` float DEFAULT NULL,`InnoDB_IO_r_ops_stddev` float DEFAULT NULL,`InnoDB_IO_r_ops_median` float DEFAULT NULL,`InnoDB_IO_r_bytes_min` float DEFAULT NULL,`InnoDB_IO_r_bytes_max` float DEFAULT NULL,`InnoDB_IO_r_wait_stddev` float DEFAULT NULL,`InnoDB_IO_r_wait_median` float DEFAULT NULL,`InnoDB_rec_lock_wait_min` float DEFAULT NULL,`InnoDB_rec_lock_wait_max` float DEFAULT NULL,`InnoDB_rec_lock_wait_pct_95` float DEFAULT NULL,`InnoDB_rec_lock_wait_stddev` float DEFAULT NULL,`InnoDB_rec_lock_wait_median` float DEFAULT NULL,`InnoDB_queue_wait_min` float DEFAULT NULL,`InnoDB_queue_wait_max` float DEFAULT NULL,`InnoDB_queue_wait_pct_95` float DEFAULT NULL,`InnoDB_queue_wait_stddev` float DEFAULT NULL,`InnoDB_queue_wait_median` float DEFAULT NULL,`InnoDB_pages_distinct_min` float DEFAULT NULL,`InnoDB_pages_distinct_max` float DEFAULT NULL,`InnoDB_pages_distinct_pct_95` float DEFAULT NULL,`InnoDB_pages_distinct_stddev` float DEFAULT NULL,`InnoDB_pages_distinct_median` float DEFAULT NULL,`QC_Hit_cnt` float DEFAULT NULL,`QC_Hit_sum` float DEFAULT NULL,`Full_scan_cnt` float DEFAULT NULL,`Full_scan_sum` float DEFAULT NULL,`Full_join_cnt` float DEFAULT NULL,`Full_join_sum` float DEFAULT NULL,`Tmp_table_cnt` float DEFAULT NULL,`Tmp_table_sum` float DEFAULT NULL,`Filesort_cnt` float DEFAULT NULL,`Filesort_sum` float DEFAULT NULL,`Tmp_table_on_disk_cnt` float DEFAULT NULL,`Tmp_table_on_disk_sum` float DEFAULT NULL,`Filesort_on_disk_cnt` float DEFAULT NULL,`Filesort_on_disk_sum` float DEFAULT NULL,`Bytes_sum` float DEFAULT NULL,`Bytes_min` float DEFAULT NULL,`Bytes_max` float DEFAULT NULL,`Bytes_pct_95` float DEFAULT NULL,`Bytes_stddev` float DEFAULT NULL,`Bytes_median` float DEFAULT NULL,UNIQUE KEY `hostname_max` (`hostname_max`,`checksum`,`ts_min`,`ts_max`),KEY `ts_min` (`ts_min`),KEY `checksum` (`checksum`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2) 创建数据库账号
$ mysql -uroot -p -h 192.168.1.190 <p>3) 配置Query-Digest-UI</p><pre class="brush:php;toolbar:false">git clone https://github.com/kormoc/Query-Digest-UI.gitcd Query-Digest-UIcp config.php.example config.phpvi config.php$reviewhost = array(// Replace hostname and database in this setting// use host=hostname;port=portnum if not the default port 'dsn' => 'mysql:host=192.168.1.190;port=3306;dbname=slow_query_log', 'user' => 'slowlog', 'password' => '123456',// See http://www.percona.com/doc/percona-toolkit/2.1/pt-query-digest.html#cmdoption-pt-query-digest--review 'review_table'=> 'global_query_review',// This table is optional. You don't need it, but you lose detailed stats// Set to a blank string to disable// See http://www.percona.com/doc/percona-toolkit/2.1/pt-query-digest.html#cmdoption-pt-query-digest--review-history 'history_table' => 'global_query_review_history',);
4)使用pt-query-digest分析日志并将分析结果导入数据库
pt-query-digest --user=slowlog --password=123456 --review h=192.168.1.190,D=slow_query_log,t=global_query_review --review-history h=192.168.1.190,D=slow_query_log,t=global_query_review_history --no-report --limit=0% --filter=" /$event->{Bytes} = length(/$event->{arg}) and /$event->{hostname}=/"$HOSTNAME/"" /usr/local/mysql/data/slow.log
5)访问web界面查看可视化结果
转自:http://www.zrwm.com/?p=2668
文章标题: 本文地址: 除非注明,博客文章均为"运维生存时间"原创,转载请标明本文地址Q群:39514058

mysqlviewshavelimitations:1)他們不使用Supportallsqloperations,限制DatamanipulationThroughViewSwithJoinsOrsubqueries.2)他們canimpactperformance,尤其是withcomplexcomplexclexeriesorlargedatasets.3)

porthusermanagementinmysqliscialforenhancingsEcurityAndsingsmenting效率databaseoperation.1)usecReateusertoAddusers,指定connectionsourcewith@'localhost'or@'%'。

mysqldoes notimposeahardlimitontriggers,butacticalfactorsdeterminetheireffactective:1)serverConfiguration impactactStriggerGermanagement; 2)複雜的TriggerSincreaseSySystemsystem load; 3)largertablesslowtriggerperfermance; 4)highConconcConcrencerCancancancancanceTigrignecentign; 5); 5)

Yes,it'ssafetostoreBLOBdatainMySQL,butconsiderthesefactors:1)StorageSpace:BLOBscanconsumesignificantspace,potentiallyincreasingcostsandslowingperformance.2)Performance:LargerrowsizesduetoBLOBsmayslowdownqueries.3)BackupandRecovery:Theseprocessescanbe

通過PHP網頁界面添加MySQL用戶可以使用MySQLi擴展。步驟如下:1.連接MySQL數據庫,使用MySQLi擴展。 2.創建用戶,使用CREATEUSER語句,並使用PASSWORD()函數加密密碼。 3.防止SQL注入,使用mysqli_real_escape_string()函數處理用戶輸入。 4.為新用戶分配權限,使用GRANT語句。

mysql'sblobissuitableForStoringBinaryDataWithInareLationalDatabase,而ilenosqloptionslikemongodb,redis和calablesolutionsolutionsolutionsoluntionsoluntionsolundortionsolunsonstructureddata.blobobobissimplobisslowdeperformberbutslowderformandperformancewithlararengedata;

toaddauserinmysql,使用:createUser'username'@'host'Indessify'password'; there'showtodoitsecurely:1)choosethehostcarecarefullytocon trolaccess.2)setResourcelimitswithoptionslikemax_queries_per_hour.3)usestrong,iniquepasswords.4)Enforcessl/tlsconnectionswith

toAvoidCommonMistakeswithStringDatatatPesInMysQl,CloseStringTypenuances,chosethirtightType,andManageEngencodingAndCollationsEttingSefectery.1)usecharforfixed lengengtrings,varchar forvariable-varchar forbariaible length,andtext/blobforlargerdataa.2 seterters seterters seterters


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。