看mysql內存佔用腳本
Ⅰ 如何查看Mysql中每張表佔用的空間大小
如題,找到MySQL中的information_schema表,這張表記錄了所有資料庫中表的信息,主要欄位含義如下:
TABLE_SCHEMA : 資料庫名
TABLE_NAME:表名
ENGINE:所使用的存儲引擎
TABLES_ROWS:記錄數
DATA_LENGTH:數據大小
INDEX_LENGTH:索引大小
如果需要查詢所有資料庫佔用空間大小隻需要執行SQL命令:
mysql> use information_schema
Database changed
mysql> SELECT sum(DATA_LENGTH+INDEX_LENGTH) FROM TABLES;
+-------------------------------+
| sum(DATA_LENGTH+INDEX_LENGTH) |
+-------------------------------+
| 683993 |
+-------------------------------+
1 row in set (0.00 sec)
大小是位元組數 如果想修改為KB可以執行:
SELECT sum(DATA_LENGTH+INDEX_LENGTH)/1024 FROM TABLES;
如果修改為MB應該也沒問題了吧
如果需要查詢一個資料庫所有表的大小可以執行:
SELECT sum(DATA_LENGTH+INDEX_LENGTH) FROM TABLES WHERE TABLE_SCHEMA='資料庫名'
Ⅱ 如何查看mysql資料庫連接數和內存佔用
命令: show processlist;
如果是root帳號,你能看到所有用戶的當前連接。如果是其它普通帳號,只能看到自己佔用的連接。
show processlist;只列出前100條,如果想全列出請使用show full processlist;
mysql> show
processlist;
命令: show status;
命令:show status like '%下面變數%';
Aborted_clients 由於客戶沒有正確關閉連接已經死掉,已經放棄的連接數量。
Aborted_connects
嘗試已經失敗的MySQL伺服器的連接的次數。
Connections 試圖連接MySQL伺服器的次數。
Created_tmp_tables
當執行語句時,已經被創造了的隱含臨時表的數量。
Delayed_insert_threads 正在使用的延遲插入處理器線程的數量。
Delayed_writes 用INSERT DELAYED寫入的行數。
Delayed_errors 用INSERT
DELAYED寫入的發生某些錯誤(可能重復鍵值)的行數。
Flush_commands 執行FLUSH命令的次數。
Handler_delete
請求從一張表中刪除行的次數。
Handler_read_first 請求讀入表中第一行的次數。
Handler_read_key
請求數字基於鍵讀行。
Handler_read_next 請求讀入基於一個鍵的一行的次數。
Handler_read_rnd
請求讀入基於一個固定位置的一行的次數。
Handler_update 請求更新表中一行的次數。
Handler_write
請求向表中插入一行的次數。
Key_blocks_used 用於關鍵字緩存的塊的數量。
Key_read_requests
請求從緩存讀入一個鍵值的次數。
Key_reads 從磁碟物理讀入一個鍵值的次數。
Key_write_requests
請求將一個關鍵字塊寫入緩存次數。
Key_writes 將一個鍵值塊物理寫入磁碟的次數。
Max_used_connections
同時使用的連接的最大數目。
Not_flushed_key_blocks 在鍵緩存中已經改變但是還沒被清空到磁碟上的鍵塊。
Not_flushed_delayed_rows 在INSERT DELAY隊列中等待寫入的行的數量。
Open_tables 打開表的數量。
Open_files 打開文件的數量。
Open_streams 打開流的數量(主要用於日誌記載)
Opened_tables
已經打開的表的數量。
Questions 發往伺服器的查詢的數量。
Slow_queries
要花超過long_query_time時間的查詢數量。
Threads_connected 當前打開的連接的數量。
Threads_running 不在睡眠的線程數量。
Uptime 伺服器工作了多少秒
1、查看物理CPU數
[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
1
2、查看邏輯CPU數
[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "processor"|wc -l
4
3、查看CPU幾核(即核數)
[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "cores"|uniq
cpu cores : 4
4、查看CPU主頻
[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep MHz|uniq
cpu MHz : 2499.982
5、前操作系統內核信息
[root@MysqlCluster01 ~]# uname -a
Linux MysqlCluster01 2.6.32-431.20.3.el6.x86_64 #1 SMP Thu Jun 19 21:14:45 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
6、前操作系統發行版信息
[root@MysqlCluster01 ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m
7、內存使用情況
[root@MysqlCluster01 ~]# free -m
total used free shared buffers cached
Mem: 7863 2738 5125 0 141 835
-/+ buffers/cache: 1761 6102
Swap: 3967 0 3967
Ⅳ 如何查看mysql資料庫中的腳本文件
sql腳本是包含一到多個sql命令的sql語句,我們可以將這些sql腳本放在一個文本文件中(我們稱之為「sql腳本文件」),然後通過相關的命令執行這個sql腳本文件。基本步驟如下:
1、創建包含sql命令的sql腳本文件
文件中包含一些列的sql語句,每條語句最後以;結尾,文件內容示例如下:
--創建表,使用「--」進行注釋
create table 表名稱
(
Guid Varchar(38) not null primary key,
Title Varchar(255),
) TYPE=InnoDB;
--在表A中增加欄位Status
alter table A add Status TinyInt default '0';
--在表A上創建索引
create index XX_TaskId_1 on A(Id_);
--在表A中添加一條記錄
Insert into A (Id,ParentId, Name) values(1,0,'名稱');
--添加、修改、刪除數據後,有可能需要提交事務
Commit;
2、執行sql腳本文件
方法一 使用cmd命令執行(windows下,unix或linux在的其控制台下)
【Mysql的bin目錄】\mysql –u用戶名 –p密碼 –D資料庫<【sql腳本文件路徑全名】,示例:
D:\mysql\bin\mysql –uroot –p123456 -Dtest
注意:
A、如果在sql腳本文件中使用了use 資料庫,則-D資料庫選項可以忽略
B、如果【Mysql的bin目錄】中包含空格,則需要使用「」包含,如:「C:\Program Files\mysql\bin\mysql」 –u用戶名 –p密碼 –D資料庫<【sql腳本文件路徑全名】
方法二 進入mysql的控制台後,使用source命令執行
Mysql>source 【sql腳本文件的路徑全名】
Ⅳ mysql資料庫 清理數據的腳本!腳本問題!
步驟如下:
首先使用mysql提供的命令行界面來導入資料庫,確保自己的電腦中安裝了mysql資料庫,可以通過命令行來確認是否安裝了mysql資料庫,當然,第一步是打開mysql的資料庫服務,使用命令行來打開:如下圖所示:
啟動mysql後,找到需要用到的腳本文件,也就是資料庫文件,首先得建立一個資料庫,這樣才可以導入腳本,如下圖所示:
在將腳本拷到本地磁碟的根目錄,這樣方便進入找到腳本,這里以d盤來說明,使用test.sql:接著來到命令行,使用source
d:/test.sql;來導入資料庫,先進入mysql,如下圖所示:
首先要在資料庫中建立好資料庫,然後導入腳本,所以先建立一個資料庫,不要腳本是不知道要往哪個資料庫中導入腳本的,如下圖所示:
然後就可以輸入導入.sql文件命令:
mysql>
use
資料庫名;
mysql>
source
d:/test.sql;
如下圖所示:
看到上面的畫面,說明mysql資料庫已經導入成功了。