Wednesday July 28th, 2004).
Code: Select all
Ubuntu 22 LTS
MythTV Version : v32.0+fixes.20220325.f69ce764b7-0ubuntu1
I've moved the DB over the MariaDB, which has been working great, some speed improvements (gives back the query cache mysql took away) - and now I'm trying to add a little redundancy via replication.
However, in spite of all the mysql config items being around the InnoDB engine, turns out quite a few of the mythdb tables (all but 1?) are "ENGINE=MyISAM" - which MariaDB/Galera doesn't replicate. It only replicates InnoDB tables. (unless I'm missing something obvious), so I have replication up and working, and a bunch of empty tables on the slaves.
I started down the path of converting tables from MyISAM to InnoDB, but evidently quite a few of the tables are missing primary keys, which makes converting them difficult, and gives fun error messages.
So couple thoughts:
1. Why MyISAM tables vs InnoDB tables? Given the performance benefits, I'm surprised it hasn't changed.
2. Has anyone successfully converted them all to InnoDB? (Mind sharing how you did it?)
3. I did a fresh v32 install on ubuntu 22 LTS, and the freshly created database has 90 of 91 tables as Engine=MyISAM
(Stolen from the web, because I didn't know - more here: https://blog.devart.com/myisam-vs-innodb.html)
This one also jumped out at me (thinking commflag)The main differences between MyISAM and InnoDB
Overall, MyISAM is an older and less efficient storage engine than InnoDB. The most commonly noted differences between these two engines are as follows: InnoDB is more stable, faster, and easier to set up; it also supports transactions. It is the default storage engine of choice for a reason, and you can use the features of InnoDB with no need to worry about compatibility issues. If you need to store large amounts of data or ensure that transactions will work correctly, choose InnoDB.
The MyISAM engine is not very good at storing large amounts of data, because it stores everything in a single table. When you need to add data to the database, you have to lock the entire table, which can cause your database to stop working until it is unlocked. In the InnoDB engine, each row is stored separately in a separate table. This means that when you insert data into a MySQL database, you do not need to lock all rows.
Am I missing something here? seems obvious we should have left MyISAM behind a while ago?The InnoDB storage engine is recommended for frequent operations with tables