MySQL: полная ошибка - решить таблицы
Наряду с моим обычным обязанностям, я также администраторов баз данных (Database Administrator) и почетных в последнее время я был correguir ошибками устранения неполадок и MySQL. Все началось с проблемы, описанной ниже:
Среди всех наших баз данных, есть одна, в частности, что в среднем рассматривает 40K транзакций в день. Эта база данных MySQL работает на которой есть таблица, которая уже превышает 21 млн записей, которые делают его иметь 4 Гб информации.
Для своих размеров, эта ошибка показал MyISAM таблицы таблицы полном объеме, что вначале мы думали, что мы может быть ограничен 2.4.x ядро файловую систему ext2 (если это Red Hat Linux 9).
4GB MySQL's Limit
Ошибка MySQL, таблица полной это сообщение, которое отображается, когда таблица достигает 4GB размер действительно недооценены последствия, так как они очень мало приложений, которые могут превысить эту сумму данных. Но когда мы укрепили наши услуги и наш сервер баз данных MySQL прекращает работать, является серьезной проблемой.
Желательно, чтобы сделать хороший анализ и дизайн нашей базе данных, чтобы этого не произошло. Однако, иногда трудно представить, что таблица может содержать 21 млн. записей в два года.
InnoDB таблиц не имеют подобных ограничений, поскольку его хранение модель совершенно иная. В таблице MyISAM с динамическими или переменным строк длиной, то индексный файл таблицы (nombre_tabla.MYI) строк хранится с использованием 32-разрядных указателя в файле данных (nombre_tabla.MYI). Это имеет предел в 4 ГБ.
Помните, что большинство компьютеров 32bit поскольку такие технологии, как 64-разрядные процессоры AMD Opteron также поддержкой 32bit.
Решение проблемы является полная таблица
Решение таблице полном объеме не очень dicil, просто достаточно, чтобы выполнить команду ALTER TABLE, но это может занять значительное время. Рассмотрим пример таблицы Существо Длина рукава:
MySQL> описывать существо;
+-----------------+-----------------------+------+ -----+---------+----------------+
| Field       A A A | Тип A             A A A | Null | Key | Default | Extra      A A A |
+-----------------+-----------------------+------+ -----+---------+----------------+
| Путеводитель        A A A | INT (10)     unsigned | NoA | PRI | NULL A | auto_increment |
| Ида Â Â Â Â Â Â Â Â Â A A A | MEDIUMINT (8) неподписанных | NoA | MUL | 0A Â Â A A A | Â Â Â Â Â Â Â Â Â Â Â Â A A A |
| Карта         A A A | SMALLINT (5) unsigned | NoA | MUL | 0A   A A A |             A A A |
| SpawnMask   A A A | TINYINT (3) unsigned A | NoA | A A A A | A  1В A A A |             A A A |
| Модели Â Â Â Â A A A | MEDIUMINT (8) неподписанных | NoA | A A A A | 0A Â Â A A A | Â Â Â Â Â Â Â Â Â Â Â Â A A A |
| Equipment_id A A | MEDIUMINT (9)       A A A | NoA | A A A A | 0A   A A A |             A A A |
| Position_x  A A A | Float             A A A | NoA | A A A A | 0A   A A A |             A A A |
| Position_y  A A A | Float             A A A | NoA | A A A A | 0A   A A A |             A A A |
| Position_z  A A A | Float             A A A | NoA | A A A A | 0A   A A A |             A A A |
| Направленность A A A | Float             A A A | NoA | A A A A | 0A   A A A |             A A A |
| Spawntimesecs A | INT (10)     unsigned | NoA | A A A A | 120A A A A |             A A A |
| Spawndist   A A A | Float             A A A | NoA | A A A A | A 5В Â A A A |             A A A |
| Currentwaypoint | MEDIUMINT (8) неподписанных | NoA | A A A A | 0A Â Â A A A | Â Â Â Â Â Â Â Â Â Â Â Â A A A |
| Curhealth   A A A | INT (10)     unsigned | NoA | A A A A | A  1В A A A |             A A A |
| Curmana     A A A | INT (10)     unsigned | NoA | A A A A | 0A   A A A |                |
| DeathState  A A A | TINYINT (3) unsigned A | NoA | A A A A | 0A   A A A |             A A A |
| MovementType A A | TINYINT (3) unsigned A | NoA | A A A A | 0A   A A A |             A A A |
+-----------------+-----------------------+------+ -----+---------+----------------+
17 строк в набор (0,02 сек)
Чтобы найти предел размера таблицы, используя SHOW TABLE STATUS. И заметьте, что Max_data_length составляет 4 ГБ.
MySQL> Существо SHOW TABLE STATUS LIKE '\ G;
*************************** 1. строка ***************************
         имя: Существо
       двигателя: MyISAM
       Версия: 10
    Row_format: Динамический
          строк: 95094
 Avg_row_length: 46
   Data_length: 4382696
Max_data_length: 281474976710655
  Index_length: 2628608
     Data_free: 0
 Auto_increment: 106039
   Create_time: 2008-09-19 09:54:05
   Update_time: 2008-09-19 10:31:08
    Check_time: 2008-09-19 10:31:09
     сортировки: utf8_general_ci
     контрольная сумма: NULL
 Create_options: ROW_FORMAT = динамический
       Комментарий: Вызов система
1 строка в наборе (0,00 сек)
ОШИБКА:
Нет запросе указан
MySQL>
Давайте исправим это, напечатав: MySQL> ALTER TABLE AVG_ROW_LENGTH Существо max_rows = 200000000000 = 50;
Query OK, 0 строк (0.03 секунд)





























