array(5, 8192, 8192), 'access' => array(9, 8192, 1024), 'site' => array(10, 32000, 8192), 'site_url' => array(8, 8192, 8192), 'goal' => array(5, 16000, 8192), 'logger_message' => array(100, 48000, 1024), 'log_action' => array(3000, 64000, 32000), 'log_visit' => array(1300, 64000, 16000), 'log_conversion_item' => array(600, 64000, 16000), 'log_conversion' => array(1000, 64000, 16000), 'log_link_visit_action' => array(3000, 64000, 16000), 'log_profiling' => array(0, 8192, 8192), 'option' => array(200, 16000, 8192), 'session' => array(0, 8192, 8192), 'archive_numeric' => array(8000, 16000, 16000), 'archive_blob' => array(8000, 128000, 1024), 'segment' => array(3, 4048, 8192), ); public static $numericRowCountsByArchiveName = array( array('label' => 'numericName1', 'row_count' => 93), array('label' => 'numericName2', 'row_count' => 203), array('label' => 'done', 'row_count' => 400), array('label' => 'done.plugin', 'row_count' => 150), array('label' => 'numericName3', 'row_count' => 340), array('label' => 'numericName4', 'row_count' => 240), ); public static $blobRowCountsByArchiveName = array( array('label' => 'blobName1', 'row_count' => 123), array('label' => 'blobName2', 'row_count' => 145), array('label' => 'blobName3', 'row_count' => 83), array('label' => 'blobName4', 'row_count' => 45), ); public function getDBStatus() { return array( 'Uptime' => 10000, 'Threads' => 10, 'Questions' => 15, 'Slow queries' => 20, 'Flush tables' => 300, 'Open tables' => 2, 'Opens' => 'unavailable', 'Queries per second avg' => 'unavailable' ); } public function getTableStatus($tableName) { list($rows, $rowLength, $indexRowLength) = self::$tableStatuses[$this->getTableNameKey($tableName)]; return array( 'Name' => $tableName, 'Engine' => 'InnoDB', 'Version' => 10, 'Row_format' => 'Compact', 'Rows' => $rows, 'Avg_row_length' => $rowLength, 'Data_length' => $rows * $rowLength, 'Max_data_length' => 0, 'Index_length' => $rows * $indexRowLength, 'Data_free' => 236978176, 'Auto_increment' => null, 'Create_time' => '2014-01-01 23:54:56', 'Update_time' => null, 'Check_time' => null, 'Collation' => 'utf8_general_ci', 'Checksum' => null, 'Create_options' => "", 'Comment' => "" ); } public function getAllTablesStatus() { $result = array(); foreach (self::$tableStatuses as $tableName => $ignore) { if ($tableName == "archive_numeric" || $tableName == "archive_blob" ) { continue; } $unprefixed = Common::prefixTable($tableName); $result[] = $this->getTableStatus($unprefixed); } $result[] = $this->getTableStatus(Common::prefixTable('archive_numeric_2012_01')); $result[] = $this->getTableStatus(Common::prefixTable('archive_blob_2012_01')); $result[] = $this->getTableStatus(Common::prefixTable('archive_numeric_2012_02')); $result[] = $this->getTableStatus(Common::prefixTable('archive_blob_2012_02')); $result[] = $this->getTableStatus(Common::prefixTable('archive_numeric_2012_03')); $result[] = $this->getTableStatus(Common::prefixTable('archive_blob_2012_03')); $result[] = $this->getTableStatus(Common::prefixTable('archive_numeric_2012_04')); $result[] = $this->getTableStatus(Common::prefixTable('archive_blob_2012_04')); return $result; } public function getTableNameKey($tableName) { $result = Common::unprefixTable($tableName); if (strpos($tableName, "archive_numeric") !== false) { $result = "archive_numeric"; } else if (strpos($tableName, "archive_blob") !== false) { $result = "archive_blob"; } return $result; } public function getRowCountsByArchiveName($tableName, $extraCols) { if (strpos($tableName, "achive_numeric") !== false) { return self::$numericRowCountsByArchiveName; } else { return self::$blobRowCountsByArchiveName; } } public function getColumnsFromTable($tableName) { return array( array('Field' => 'field1', 'Type' => 'datetime'), array('Field' => 'field2', 'Type' => 'int(11) unsigned'), array('Field' => 'field3', 'Type' => 'varchar(10)'), array('Field' => 'field4', 'Type' => 'varchar(24)'), array('Field' => 'field5', 'Type' => 'char(32)'), array('Field' => 'field6', 'Type' => 'timestamp'), ); } }