簡單記錄一下,因為看了一下Data free的計算還算準(zhǔn)確。不是統(tǒng)計值
          大概是空閑extent的大小。
          ST_FIELD_INFO tables_fields_info[]= {... {"DATA_FREE",
          MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, 0, (MY_I_S_MAYBE_NULL |
          MY_I_S_UNSIGNED), "Data_free", OPEN_FULL_TABLE}, ... }
          tables_fields_info[12]就是Data_free ST_SCHEMA_TABLE schema_tables[]= {...
          {"TABLES", tables_fields_info, create_schema_table, get_all_tables,
          make_old_format, get_schema_tables_record, 1, 2, 0, OPTIMIZE_I_S_TABLE}, ... }
          填充方式get_schema_tables_record函數(shù) 其中有一句 table->field[12]->store((longlong)
          file->stats.delete_length, TRUE); 實際就是 file->stats.delete_length
          其中 file->stats.delete_length調(diào)用進(jìn)行取值
          ha_innobase::info_low 其中包含 avail_space =
          fsp_get_available_space_in_free_extents(ib_table->space); stats.delete_length =
          avail_space * 1024; uintmax_t fsp_get_available_space_in_free_extents( const
          fil_space_t* space) { ut_ad(space->n_pending_ops > 0); ulint size_in_header =
          space->size_in_header;//總的頁面大小 if (size_in_header < FSP_EXTENT_SIZE) { //碎片頁
          直接返回0 return(0); /* TODO: count free frag pages and return a value based on
          that */ } /* Below we play safe when counting free extents above the free
          limit: some of them will contain extent descriptor pages, and therefore will
          not be free extents */ ut_ad(size_in_header >= space->free_limit); ulint
          n_free_up = (size_in_header - space->free_limit) / FSP_EXTENT_SIZE;
          //(總的頁面大小-已經(jīng)初始化大小)/EXTENT SIZE page_size_t page_size(space->flags); if
          (n_free_up > 0) { n_free_up--; n_free_up -= n_free_up / (page_size.physical() /
          FSP_EXTENT_SIZE); //減去extent管理塊? } /* We reserve 1 extent + 0.5 % of the space
          size to undo logs and 1 extent + 0.5 % to cleaning operations; NOTE: this
          source code is duplicated in the function above! */ ulint reserve = 2 +
          ((size_in_header / FSP_EXTENT_SIZE) * 2) / 200; ulint n_free = space->free_len
          + n_free_up; if (reserve > n_free) { return(0); }
          return(static_cast<uintmax_t>(n_free - reserve) * FSP_EXTENT_SIZE *
          (page_size.physical() / 1024)); }
          作者微信:gp_22389860

          友情鏈接
          ioDraw流程圖
          API參考文檔
          OK工具箱
          云服務(wù)器優(yōu)惠
          阿里云優(yōu)惠券
          騰訊云優(yōu)惠券
          京東云優(yōu)惠券
          站點信息
          問題反饋
          郵箱:[email protected]
          QQ群:637538335
          關(guān)注微信

                gay网站小受被做哭国产动漫 | h片在线免费观看 | 女人脱了内裤张开双腿让男人桶 | 女人被爽到高潮的乱码网站 | 插插网站 |