2016年6月20日 星期一

[mysql] how to get table record size 取得每筆資料的大小


要怎麼取得每一筆reocrd 在 database的 size ,
除了可以查看 schema 外,
更實際的作法可以觀看 table status

把 data_length 加上 index_length 就可以得到 table 的 size
在把它除以多少筆record 即可得到每一筆 record 需要多少 bytes 。


mysql> show table status\G

*************************** 3. row ***************************
           Name: task_target
         Engine: InnoDB
        Version: 10
     Row_format: Compact
           Rows: 7
 Avg_row_length: 2340
    Data_length: 16384
Max_data_length: 0
   Index_length: 16384
      Data_free: 3373268992
 Auto_increment: 8
    Create_time: 2016-06-14 09:36:33
    Update_time: NULL
     Check_time: NULL
      Collation: utf8_general_ci
       Checksum: NULL
 Create_options:
        Comment:



(Data_length + Index_length ) / rows ---> 每個 row 的 size bytes


(Data_length + Index_length ) / rows /1024 /1024 ---> 每個 row 的 size bytes MB


MySQL :: MySQL 5.7 Reference Manual :: 14.7.5.36 SHOW TABLE STATUS Syntax
http://dev.mysql.com/doc/refman/5.7/en/show-table-status.html

沒有留言:

張貼留言