Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

InnoDB конвертация, ошибка схем


Recommended Posts

Здравствуйте! Сделал при помощи буржуйского скрипта конвертацию всех таблиц бд в Innodb. Все работает хорошо, но перестали подгружатся модули из схемы (column_left, column_right, и т.д.) на странице категории. На других страницах все нормально, только в категории. В чем может быть причина? И заодно, насколько целесобразно  конвертировать в данный тип бд ?

Надіслати
Поділитися на інших сайтах


52 минуты назад, Radprox сказал:

И заодно, насколько целесобразно  конвертировать в данный тип бд ?

 

Странный вопрос после того, как уже сконвертировали )

Вроде как в select и count Innodb медленнее.

Надіслати
Поділитися на інших сайтах

49 минут назад, Vetroff сказал:

 

Странный вопрос после того, как уже сконвертировали )

Вроде как в select и count Innodb медленнее.

Захотелось потестировать, много дискуссий по этому поводу, вот и вопрос такой неоднозначный :D

Надіслати
Поділитися на інших сайтах


18 часов назад, Radprox сказал:

Здравствуйте! Сделал при помощи буржуйского скрипта конвертацию всех таблиц бд в Innodb. Все работает хорошо, но перестали подгружатся модули из схемы (column_left, column_right, и т.д.) на странице категории. На других страницах все нормально, только в категории. В чем может быть причина? И заодно, насколько целесобразно  конвертировать в данный тип бд ?

 

А вы только таблицы конвертировали, или индексы еще добавляли ?

 

17 часов назад, Vetroff сказал:

 

Странный вопрос после того, как уже сконвертировали )

Вроде как в select и count Innodb медленнее.

 

 

Не существенно, особенно если выставить innodb_flush_log_at_trx_commit=2.

Очень часто innodb, за счет другого механизма локов данных (на увравне записи а не всей таблицы) единственное спасение для магазинов с постоянно обновляемой номенклатурой.

 

16 часов назад, Radprox сказал:

Захотелось потестировать, много дискуссий по этому поводу, вот и вопрос такой неоднозначный :D

Нормальная практика! Наверное 100+ магазинов отлично работают и таких проблем как у вас нет, а вот если нахомутать с индексами и если юзать mariadb - могут быть проблемы один в один как вы описываете.

Надіслати
Поділитися на інших сайтах


51 минуту назад, Yoda сказал:

 

А вы только таблицы конвертировали, или индексы еще добавляли ?

 

 

 

Не существенно, особенно если выставить innodb_flush_log_at_trx_commit=2.

Очень часто innodb, за счет другого механизма локов данных (на увравне записи а не всей таблицы) единственное спасение для магазинов с постоянно обновляемой номенклатурой.

 

Нормальная практика! Наверное 100+ магазинов отлично работают и таких проблем как у вас нет, а вот если нахомутать с индексами и если юзать mariadb - могут быть проблемы один в один как вы описываете.

да, и mariadb , и индексы проставил )) Попробую с бекапа сделать конвертацию без индексов

Надіслати
Поділитися на інших сайтах


В 01.03.2020 в 18:33, Radprox сказал:

Здравствуйте! Сделал при помощи буржуйского скрипта конвертацию всех таблиц бд в Innodb. Все работает хорошо, но перестали подгружатся модули из схемы (column_left, column_right, и т.д.) на странице категории. На других страницах все нормально, только в категории. В чем может быть причина? И заодно, насколько целесобразно  конвертировать в данный тип бд ?

Ложится из-за oc_layout_module , а по какой причине я хз. Проверял даже вручную, данные один в один. Но как только делаешь импорт этой таблицы (именно таблицы) из локалки, так сразу норм. Причем просто смена Типа таблицы не помогает.

На Бегете MySQL 8 каждые сутки конвертит таблицы на автомате из MyISAM в InnoDB. Пока в техподдержку не написал и не сказал что надо эту конвертацию отключить, были косяки. Сейчас всё норм.

Этот вопрос наверное больше к спецам MySQL, лично я так и не разгадал загадку..

Надіслати
Поділитися на інших сайтах

21 hours ago, optimlab said:

Проверял даже вручную, данные один в один. Но как только делаешь импорт этой таблицы (именно таблицы) из локалки, так сразу норм. Причем просто смена Типа таблицы не помогает.

как вариант, collation был разным. из-за этого запросто может быть content_top != content_top и все то, что Вы и ТС описывали.

Было бы неплохо взглянуть на буржуйский скрипт - чего он там с таблицами делает. MyISAM - > InnoDB конвертнуть проще простого. Хоть так, например.

Spoiler

-- скрипт для формирования запросов по смене движка таблиц в рамках выбранной базы данных. Например: InnoDB <--> MyISAM
------------------------------------------------
-- указать название базы данных
set @DB_NAME = 'dbname';
-- указать на какой движок меняем
set @DB_ENGINE_NEW = 'InnoDB';
-- указать с какого движка меняем
set @DB_ENGINE_OLD  = 'MyISAM';
------------------------------------------------
SELECT CONCAT('ALTER TABLE `',table_name,'` ENGINE = ', @DB_ENGINE_NEW, ';') AS sql_text
FROM information_schema.tables 
WHERE table_schema = @DB_NAME AND ENGINE = @DB_ENGINE_OLD
AND TABLE_TYPE = 'BASE TABLE'
ORDER BY table_name DESC;

На выходе-результате будет набор команд для ручного выполнения (при выполнении скрипта движок не будет изменен). Желательно их сохранить для спокойствия в какой-нибудь документ. Результаты необходимо скопировать и выполнить отдельно.

 

Надіслати
Поділитися на інших сайтах

https://github.com/lilalaunesau/opencart-turbo/blob/master/turbo.php

Вот этот скрипт

3 часа назад, 100napb сказал:

как вариант, collation был разным. из-за этого запросто может быть content_top != content_top и все то, что Вы и ТС описывали.

Было бы неплохо взглянуть на буржуйский скрипт - чего он там с таблицами делает. MyISAM - > InnoDB конвертнуть проще простого. Хоть так, например.

  Показать контент


-- скрипт для формирования запросов по смене движка таблиц в рамках выбранной базы данных. Например: InnoDB <--> MyISAM
------------------------------------------------
-- указать название базы данных
set @DB_NAME = 'dbname';
-- указать на какой движок меняем
set @DB_ENGINE_NEW = 'InnoDB';
-- указать с какого движка меняем
set @DB_ENGINE_OLD  = 'MyISAM';
------------------------------------------------
SELECT CONCAT('ALTER TABLE `',table_name,'` ENGINE = ', @DB_ENGINE_NEW, ';') AS sql_text
FROM information_schema.tables 
WHERE table_schema = @DB_NAME AND ENGINE = @DB_ENGINE_OLD
AND TABLE_TYPE = 'BASE TABLE'
ORDER BY table_name DESC;

На выходе-результате будет набор команд для ручного выполнения (при выполнении скрипта движок не будет изменен). Желательно их сохранить для спокойствия в какой-нибудь документ. Результаты необходимо скопировать и выполнить отдельно.

 

 

  • +1 1
Надіслати
Поділитися на інших сайтах


10 часов назад, chukcha сказал:

13-й год!!!!
Жуть, Ого! Крррасота.. У вас вся спина белая (с)

Сорри, не ту ссылку дал, паррниша)

https://github.com/ip-cam/opencart-turbo/blob/master/turbo.php

Вот этим скриптом делал,  16 год

Змінено користувачем Radprox
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.