Mysql 5.6+ Require as part of upgrade path

8 posts by 3 authors in: Forums > CMS Builder
Last Post: January 29, 2019   (RSS)

By kitsguru - January 16, 2019 - edited: January 16, 2019

When you start to require PHP 7+, I believe an upgrade to MySql 5.6+ is in order.

 With that being said, it would be a great time to switch to INNODB as the default engine instead of ISAM. There are many benefits to INNODB that warrant the switch.

Jeff Shields

By Dave - January 16, 2019

Hey Jeff, 

Yea, I agree.  That's on our wish list as well.  I think it's something we'll likely revisit this year.  I'm hesitant to require too many upgrades and there's a significant time cost for us to upgrade and test the code, which takes time away from development of other features.  So usually what we try to do is do it when we're updating the code anyways, such as if/when we update the database libraries.

Dave Edis - Senior Developer
interactivetools.com

I have a plugin that converts all the CMSB tables to INNOB and been using it for almost 2 years. It fixes a number of issues that I have reported in the past such as index to long. Also my benchmarks show significant performance boosts.

One  issue I had was when two people were updating the same section at the same time. ISAM does table locking and INNODB does record level locking which solved that issue as well.

Jeff Shields

By Dave - January 18, 2019

Thanks Jeff, 

Could you post the plugin or email it to me at dave@interactivetools.com and I'll take a look?  

And a couple questions: 

- What advantage does table vs row locking have in your application? (speed?)

- What v5.6 features are you using that are not in v5.5? 

I'm wondering if we could have an option for innodb as a way to soft-launch it. 

Dave Edis - Senior Developer
interactivetools.com

By kitsguru - January 18, 2019 - edited: January 18, 2019

Hi Dave,

The main features using INNODB in MySql 5.6

  • foreign key restraints
  • full text searching 
  • row locking is faster than table locking
  • transactional support 

You might find this link interesting from the MySql team:

https://www.mysql.com/why-mysql/presentations/myisam-2-innodb-why-and-how/

as well as:

https://www.liquidweb.com/kb/mysql-performance-myisam-vs-innodb/

https://www.percona.com/blog/2016/10/11/mysql-8-0-end-myisam/

My earlier post on "Section error when dragging column order"

https://www.interactivetools.com/forum/forum-posts.php?postNum=2241627#post2241627

I have repackaged the plugin and you are free to modify and use it in any manner you wish. It will convert all the tables in the Database to INNODB. If you rerun it, it will rebuild and optimize the indexes.

Also of note is that MySQL 5.5 supported ended December 2018.

Jeff Shields
Attachments:

isamToInnoDB.php 2K

By mark99 - January 29, 2019

Worth noting that there are some huge web hosting companies out there (e.g. 1and1 / ionos) that for some reason still only give their clients access to MySQL 5.5 databases. Heaven knows why but I'm stuck in that boat of waiting for this to change before we can adapt our own site (sadly changing host isn't currently a viable option).

By Dave - January 29, 2019

Hey Guys, 

Thanks for all the feedback and insights.  I think what we'll do is add a feature so users can enable this on an opt-in basis to begin with.  That way it covers all the possible scenarios.

Cheers!

Dave Edis - Senior Developer
interactivetools.com