prepared_query('SHOW CREATE TABLE ' . $match[1]); list(,$definition) = $DB->next_record(MYSQLI_NUM, false); header('Content-type: text/plain'); die($definition); } } $SortOrderMap = [ 'datafree' => ['data_free', 'desc', 'free space'], 'datasize' => ['data_length', 'desc', 'table size'], 'freeratio' => ['CASE WHEN data_length = 0 THEN data_free / data_length END', 'desc', 'table bloat'], 'indexsize' => ['index_length', 'desc', 'index size'], 'name' => ['table_name', 'desc', 'name'], 'rows' => ['table_rows', 'desc', 'row counts'], 'rowsize' => ['avg_row_length', 'desc', 'mean row length'], 'totalsize' => ['data_length + index_length', 'desc', 'total table size'], ]; $SortOrder = (!empty($_GET['order']) && isset($SortOrderMap[$_GET['order']])) ? $_GET['order'] : 'totalsize'; $orderBy = $SortOrderMap[$SortOrder][0]; $orderWay = (empty($_GET['sort']) || $_GET['sort'] == $SortOrderMap[$SortOrder][1]) ? $SortOrderMap[$SortOrder][1] : SortableTableHeader::SORT_DIRS[$SortOrderMap[$SortOrder][1]]; $DB->prepared_query(" SELECT table_name, engine, table_rows, avg_row_length, data_length, index_length, data_free FROM information_schema.tables WHERE table_schema = ? ORDER by $orderBy $orderWay ", SQLDB ); $Tables = $DB->to_array('table_name', MYSQLI_ASSOC); $data = []; foreach ($Tables as $name => $info) { switch ($SortOrder) { case 'freeratio': $data[$name] = round($info['data_length'] == 0 ? 0 : $info['data_free'] / $info['data_length'], 2); break; case 'totalsize': $data[$name] = $info['data_length'] + $info['index_length']; break; default: $data[$name] = $info[$SortOrderMap[$SortOrder][0]]; } } View::show_header('Database Specifics'); ?>

'Free Size', 'datasize' => 'Data Size', 'freeratio' => 'Bloat %', 'indexsize' => 'Index Size', 'name' => 'Name', 'rows' => 'Rows', 'rowsize' => 'Row Size', 'totalsize' => 'Total Size', ], $SortOrder, $orderWay); ?>
emit('name', $SortOrderMap['name'][1]) ?> emit('rows', $SortOrderMap['rows'][1]) ?> emit('rowsize', $SortOrderMap['rowsize'][1]) ?> emit('datasize', $SortOrderMap['datasize'][1]) ?> emit('indexsize', $SortOrderMap['indexsize'][1]) ?> emit('datafree', $SortOrderMap['datafree'][1]) ?> emit('freeratio', $SortOrderMap['freeratio'][1]) ?> emit('totalsize', $SortOrderMap['totalsize'][1]) ?>
' : '' ?> ' : '' ?>