問(wèn)題是:如何從一個(gè)大項(xiàng)目中,迅速的定位執(zhí)行速度慢的查詢(xún)語(yǔ)句? 1.首先我們了解mysql數(shù)據(jù)庫(kù)的一些允許狀況 show session | global status like ‘uptime’ //運(yùn)行的時(shí)間 session當(dāng)前回話 global所有的 show status like ‘com_select’ //select命名使用的次數(shù),update,delete,等一樣 show status like connections //查詢(xún)多少個(gè)鏈接 ----------------------------------- netstats -anb // 查詢(xún)鏈接的詳細(xì)信息 ip,端口等 ;mysql服務(wù)端口為3306 客戶(hù)端隨機(jī)分配端口 ------------------------------------ 2.如何定位慢查詢(xún) 步驟: i:構(gòu)建一個(gè)大表(400萬(wàn)以上數(shù)據(jù))->用存儲(chǔ)過(guò)程構(gòu)建,要去數(shù)據(jù)貼近真實(shí) 創(chuàng)建表 create table dept(/*部門(mén)表*/ deptno mediumint unsigned not null default 0,//編號(hào) unsigned 無(wú)符號(hào)整數(shù) dname varchar(20) not null default "", //名稱(chēng) loc varchar(13) not null default "",//地點(diǎn) )engine=myisam default charset=utf8; --------------- create table emp(/*員工表*/ empno mediumint unsigned not null default 0,//編號(hào) ename varchar(20) not null default "",//名字 job varchar(9) not null default "",//工作 mgr mediumint unsigned not null default 0,//上級(jí)編號(hào) hiredate date not null,//入職時(shí)間 sal decimal(7,2) not null,//薪水 comm decimal(7,2) not null,//紅利 deptno mediumint unsigend not null default 0,//部門(mén)編號(hào) )engine=myisam default charset=utf8; ------------------ create table salgrade(/*工資級(jí)別表*/ grade mediumint unsigend not null default 0, losal decimal(17,2) not null, hisal decimal(17,2) not null, )engine=myisam default charset=utf8; ----------------- 創(chuàng)建函數(shù).php ![]() ![]() ----------------------------- 舉例: <?php $con=mysql_connect("localhost","root","root"); if(!$con){ die(“失敗” } mysql_select_db('temp'); $sql="select rand_string(6) from dual";//dual 亞元表 > --------------------------- ii:show variables like ‘long_query’ //顯示慢查詢(xún)的時(shí)間是多少 set long_query_time=1 //修改慢查詢(xún)時(shí)間為1s ;然后打開(kāi)數(shù)據(jù)庫(kù)運(yùn)行一天,再查看慢查詢(xún) iii:show status like ‘slow_queries’ //顯示慢查詢(xún)次數(shù) iiii:把慢查詢(xún)的sql記錄到日志中,默認(rèn)不會(huì)打開(kāi)。需要在啟動(dòng)mysql時(shí)候,指定慢查詢(xún)記錄 ![]() |
|
來(lái)自: 昵稱(chēng)36863495 > 《mysql》