MySQL統計和分析技巧

1.MySQL如果要修改字段的默認值,
一是mysql> ALTER TABLE sakila.film -> MODIFY COLUMN rental_duration TINYINT(3) NOT NULL DEFAULT 5;
二是mysql> ALTER TABLE sakila.film -> ALTER COLUMN rental_duration SET DEFAULT 5; 

第二種非常快,因爲只修改了.frm文件。第一種?copy 表!


2.MySQL的狀態值很多都是累計值,想快速看到變化值,可用此命令: 
mysqladmin -hxxxx -umysqlha -pxxxx -Pxxxx ext -i1 | awk ‘ /Queries/{q=$4-qp;qp=$4} /Com_insert /{insert=$4-insertp;insertp=$4} /Threads_connected/{tc=$4} /Threads_running/{printf “%5d %5d %5d %5dn”, q, insert, tc, $4}’,

還可以用/usr/local/my51/bin/mysqladmin -hhostname -uuser -p -P4697 -i1 extended-status -r |egrep “Com_insert |Com_select”


3.SELECT SUM(id = 2), SUM(name = ‘a’) FROM t3 可以統計出每個字段符合條件的數量


4.CREATE TABLE innodb_lock_monitor(a int) ENGINE=INNODB;

在show engine innodb status中可以顯示更詳細的死鎖信息,同時每隔16秒分輸出show engine innodb status結果到error log


5.awk ‘/^# Time:/{print $3, $4, c;c=0}/^# User/{c++}’ slow-query.log 可以顯示慢查詢時間分佈


6.mysql -hhostname -uuser -ppwd-P4901 -e “show processlistG”|grep State: |sort|uniq -c|sort -rn 可以對processlist狀態進行分類統計


7.select id,group_concat(distinct name order by name separator ‘:’) from t4 group by id; 可以進行字符串分組拼接


8.同時查看多個status,show status where variable_name like 'Uptime' or variable_name like 'Threads_cached';



摘錄:http://www.iamcjd.com/?p=1269



發佈了20 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章