Question related to upgrading to mysql 8 and converting innodb_row_format

g1patnaik December 5, 2020

Hi,

For upgrading jira software from 8.2.1 to 8.13.0. we have upgraded database as follows:

  1. Initial DB: MySQl-5.6.49-1 (jiradb  - collation:utf8_bin, row_format=compact,) (global -innnodb_row_format=default, collation= utf8_bin)
  2. Upgrade to MySQL 5.7.31-1 (jiradb - collation: utf8_bin, row_format=compact) (global-  innodb_row_format =DYNAMIC, innodb_file_format=BARRACUDA,large_prefix=ON,collation=utf8mb4_bin)
  3. Update collations of jira db, tables and columns to utf8mb4_bin
  4. Upgrade to MySQL 8.0.22-1 (jiradb - collation: utf8mb4_bin, row_format=compact) (global- innodb_row_format=DYNAMIC, collation=utf8mb4_bin)

I have completely forgot to change row_format of the existing tables like I updated collations. And then upgraded the jira software. With jira software upgraded, it modified some tables. I didn't make a note of the tables that were upgraded. 

Few days has been passed and I was reviewing and then, identified that I have not changed row_format. From information-schema, I could see that row_format is updated as DYNAMIC for most of the tables, but not all. I am guessing these were updated when jira modified the tables at the time of upgraded, as default row_format was set to DYNAMIC. 

 

So, my question is should I be running ALTER TABLE row_format=DYNAMIC for those which are not changed and then run OPTIMIZE TABLES? If I don't run this, does this affect performance or will it have some other affects?


Also, when we do sync to a different server from the backup of the upgraded DB, in the new server, row_formats are all modified to DYNAMIC as expected. So, is the best way to fix this is to take full dump and restore instead of doing online ALTER TABLE and optimize commands? I couldn't find any instructions in Jira articles about converting row_formats.


As of now, we don't particularly find any issues. But we were expecting better performance after the upgrade and it looks like we have not hit that yet. 

 

1 answer

0 votes
g1patnaik December 5, 2020

It looks like it is not required to specificly run ALTER TABLE as I see in Innodb, OPTIMIZE tables means recreating the table again. So, the row_format in the newly created table has the default row_format i.e., DYNAMIC. I guess it is safe to run OPTIMIZE tables.

Suggest an answer

Log in or Sign up to answer