Требуется ли процедура для обновления типов столбцов mysql? - PullRequest
1 голос
/ 09 октября 2009

Я пытаюсь оптимизировать свои таблицы mysql (MyISAM), и я изменил некоторые типы столбцов с помощью phpmyadmin, в основном с int на smallint, medium int и т. Д. После того, как я это сделал, mysql действительно завис, и нагрузка на сервер стала очень высокой. , Я сделал это на живом сайте, что, как я полагал, было проблемой, но даже после перевода сайта в режим обслуживания и ожидания снижения нагрузки, нагрузка все равно с ума сошла. В конце я должен отбросить таблицы и воссоздать их с их исходными типами столбцов, чтобы все работало гладко ... Так что же мне следует делать до и после изменения типов столбцов?

Может ли объединение таблиц с двумя различными типами столбцов создать проблему? И.Е. id INT (11) соединяется с MEDIUMINT (8). Я думаю, что однажды я это сделал.

1 Ответ

1 голос
/ 09 октября 2009

Вы сказали:

"Может быть, объединение таблиц с двумя различными типами столбцов также создаст проблему? I.E.ID INT (11) объединение с MEDIUMINT (8). Я думаю, что в какой-то момент я это сделал."

Да. Это может снизить производительность, поскольку при объединении двух столбцов разных типов RBDMS должна выполнить преобразование типа «на лету» каждого отдельного значения в одном из столбцов, чтобы оно соответствовало типу в другом столбце, чтобы оно могло выполнять сравнение. По этой причине столбцы, к которым вы присоединяетесь, всегда должны быть одного типа, предпочтительно с внешним ключом (если вы используете тип таблицы InnoDB).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...