<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
檢視執行引擎以及預設引擎。
SHOW PROCESSLIST檢視當前資料庫連線的使用情況,以及各種狀態資訊,非常有用。SHOW PROCESSLIST; 只列出前100條,如果想全列出請使用SHOW FULL PROCESSLIST;
屬性列以及含義:
id | 一個標識,要kill 一個語句的時候很有用。 |
---|---|
user | 顯示當前使用者,如果不是root,這個命令就只顯示你許可權範圍內的sql語句。 |
host | 顯示這個語句是從哪個ip 的哪個埠上發出的。可用來追蹤出問題語句的使用者。 |
db | 顯示這個程序目前連線的是哪個資料庫。 |
command | 顯示當前連線的執行的命令,一般就是休眠(sleep),查詢(query),連線(connect)。 |
state列以及含義,mysql列出的狀態:
Checking table | 正在檢查資料表(這是自動的)。 |
---|---|
Closing tables | 正在將表中修改的資料重新整理到磁碟中,同時正在關閉已經用完的表。這是一個很快的操作,如果不是這樣的話,就應該確認磁碟空間是否已經滿了或者磁碟是否正處於重負中。 |
Connect Out | 複製從伺服器正在連線主伺服器。 |
Copying to tmp table on disk | 由於臨時結果集大於tmp_table_size(預設16M),正在將臨時表從記憶體儲存轉為磁碟儲存以此節省記憶體。 |
Creating tmp table | 正在建立臨時表以存放部分查詢結果。 |
deleting from main table | 伺服器正在執行多表刪除中的第一部分,剛刪除第一個表。 |
InnoDB 的行級鎖定狀態變數。
InnoDB 的行級鎖定狀態變數不僅記錄了鎖定等待次數,還記錄了鎖定總時長,每次平均時長,以及最大時長,此外還有一個非累積狀態量顯示了當前正在等待鎖定的等待數量。對各個狀態量的說明如下:
對於這5個狀態變數,比較重要的主要是InnoDB_row_lock_time_avg(等待平均時長),InnoDB_row_lock_waits(等待總次數)以及InnoDB_row_lock_time(等待總時長)這三項。尤其是當等待次數很高,而且每次等待時長也不小的時候,我們就需要分析系統中為什麼會有如此多的等待,然後根據分析結果著手指定優化計劃。
如果發現鎖爭用比較嚴重,如InnoDB_row_lock_waits和InnoDB_row_lock_time_avg的值比較高,還可以通過設定InnoDB Monitors 來進一步觀察發生鎖衝突的表、資料行等,並分析鎖爭用的原因。
SHOW ENGINE INNODB STATUS命令會輸出當前InnoDB監視器監視到的很多資訊,它輸出就是一個單獨的字串,沒有行和列,內容分為很多小段,每一段對應innodb儲存引擎不同部分的資訊,其中有一些資訊對於innodb開發者來說非常有用。
有一節LATEST DETECTED DEADLOCK,就是記錄的最後一次死鎖資訊, 如下案例:
SHOW INDEXS查詢一個表中的索引資訊:SHOW INDEXES FROM table_name;
建表的sql如下:
CREATE TABLE contacts( contact_id INT AUTO_INCREMENT, first_name VARCHAR(100) NOT NULL comment 'first name', last_name VARCHAR(100) NOT NULL, email VARCHAR(100), phone VARCHAR(20), PRIMARY KEY(contact_id), UNIQUE(email), INDEX phone(phone) , INDEX names(first_name, last_name) comment 'By first name and/or last name' );
儲存過程插入五萬條資料:
CREATE PROCEDURE zqtest ( ) BEGIN DECLARE i INT DEFAULT 0; DECLARE j VARCHAR ( 100 ) DEFAULT 'first_name'; DECLARE k VARCHAR ( 100 ) DEFAULT 'last_name'; DECLARE l VARCHAR ( 100 ) DEFAULT 'email'; DECLARE m VARCHAR ( 20 ) DEFAULT '11111111111'; SET i = 0; START TRANSACTION; WHILE i < 50000 DO IF MOD ( i, 100 ) = 0 THEN SET j = CONCAT( 'first_name', i ); END IF; IF MOD ( i, 200 ) = 0 THEN SET k = CONCAT( 'last_name', i ); END IF; IF MOD ( i, 50 ) = 0 THEN SET m = CONCAT( '', CAST( m as UNSIGNED) + i ); END IF; INSERT INTO contacts ( first_name, last_name, email, phone ) VALUES ( j, k, CONCAT(l,i), m ); SET i = i + 1; END WHILE; COMMIT; END;
使用show index from contacts;後結果如下:
欄位說明:
Table | 表名 |
---|---|
Non_unique | 唯一索引為0,其他索引為1。主鍵索引也是唯一索引。 |
Key_name | 索引名。如果名字相同則表明是同一個索引,並且是聯合索引,每一行都表示聯合索引中的某一個列。 |
Seq_in_index | 索引中的列序列號,從1開始。也可以表明該列在聯合索引中的順序。 |
Column_name | 索引列名,如果是聯合索引則是某一個列的名字 |
Collation | 列以什麼方式儲存在索引中,大概意思就是字元序。 |
Cardinality | 一個索引上不同的值的個數,我們稱之為“基數”(cardinality),也稱為區分度,這個基數越大,索引的區分度越好。該值的統計不一定是準確的,可以使用ANALYZE TABLE修正。 |
Sub_part | 字首索引。如果列只是被部分地編入索引,則為被編入索引的字元的數目。如果整列的值都被編入索引,則為NULL。 |
Packed | 關鍵字如何被壓縮。如果沒有被壓縮,則為NULL。壓縮一般包括壓縮傳輸協定、壓縮列解決方案和壓縮表解決方案。 |
Null | 如果列值可以包含null,則為YES |
Index_type | 索引結構型別,常見有FULLTEXT,HASH,BTREE,RTREE |
Comment、Index_comment | 註釋 |
重建表,包括索引結構。可以消除索引頁分裂以及刪除資料時留下的磁碟碎片。
不是重建表,只是對錶的索引資訊做重新統計,沒有修改資料,這個過程中加了MDL讀鎖。可以用來修正show index from tablename;中統計索引的Cardinality是資料異常的情況。
到此這篇關於MySQL中資料庫優化的常見sql語句總結的文章就介紹到這了,更多相關MySQL資料庫優化語句內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45