select count(*) tables,concat(round(sum(table_rows)/1000000,2),'m') rows,concat(round(sum(data_length)/(1024*1024*1024),2),'g') data,concat(round(sum(index_length)/(1024*1024*1024),2),'g') idx,concat(round(sum(data_length+index_length)/(1024*1024*1024),2),'g') total_size,round(sum(index_length)/sum(data_length),2) idxfrac from information_schema.tables;
show table status
show table status from db_name like 'tbl_name';
個人認為innodb只是花心的mysql現階段青睞的乙個儲存引擎,之所以成為目前mysql所發行新版的標準,較之於其它的儲存引擎它的優點就是其支援相容acid的事務,以及引數完整性即對外鍵的支援。
innodb的災難恢復比之前的mysiam優秀很多,且mysiam不支援事務,這點是致命的。
不過google等大公司都使用了innodb作為解決方案之一,我想用innodb做儲存引擎應該是經過深思熟慮做出的決定。
innodb在技術上是一套放在mysql後台的完整資料庫系統,它在主記憶體中建立其專用的緩衝池用於高速緩衝資料和索引,從而可以很有效的使用大量的記憶體。
但innodb也有硬傷,比如它的磁碟效能就很令人擔心,mysql缺乏良好的tablespace真是天大的缺陷!如果你測試innodb下的insert/update/remove效能絕對讓你抓狂,cache只能解決小資料量的問題,大資料量是不夠的,沒經歷過匯入幾百萬條innodb資料到最後看著檔案尺寸100kb 100kb的增長,是沒法體會痛苦的。
百萬行記錄插入之後,插入速度下降到了之前的1/30,從開始的1600行/秒衰退到50行/秒,同樣的測試環境下,myisam沒有這樣的問題,innodb的roadmap對此問題的時間表是「long term」。
mysql innodb只有在滿足以下條件下:不需要經常修改表結構,沒有經常性的bulk insert和載入資料需求,在沒有blob/text欄位的前提下,index設定合理比如經常插入就減少 index, 經常查詢就增加index,千萬級別的插入速度和效能才能穩定。
如果大家對千萬級別記錄的表有經常的alter index, alter table, load data, bulk insert的需求,那最好可以選擇其他儲存引擎,當然也可以考慮使用其他資料庫。
mysql常用語句 MySQL常用語句
create table student id int primary key auto increment comment 學號 name varchar 200 comment 姓名 age int comment 年齡 comment 學生資訊 修改表注釋 alter table studen...
php mysql 常用語句 mysql常用語句
一 修改mysql使用者密碼 mysql h localhost u root p 命令列登入 update user set password password 123456 where user root 二 資料庫操作 show databases 顯示資料庫 create database ...
MySQL常用語句
and和or可以混用,and比or具有更高的優先順序,但盡量使用圓括號區分 自動過濾重複的資料owner,關鍵字distinct select distinct owner from pet 按照生日公升序排列,關鍵字order by select name,birth from pet order...