solved Jamroom performance

alt=
@perfectgamestudios
8 years ago
106 posts
Hello I currently in middle of migrating jamroom to a new server but I was wondering is there any reason behind the mixed engines in jamroom. of using INNODB and MyISAM.

also is it OK to convert my jamroom tables from utf8_unicode_ci too utf8mb4_unicode_ci as this method is like the older method but better performance for UTF8

Stephen
updated by @perfectgamestudios: 12/15/16 02:58:10PM
michael
@michael
8 years ago
7,714 posts
Should be no problem using utf8mb4, its a newer system. Jamroom supports mysql 5.3 which doesnt have mb4 or otherwise we would likely use that. As it is now there are workarounds in place to deal with emoji issues that wouldn't be needed if we were using mb4.

As to why the different tables, it has to do with indexing, one is faster for read/writes the other for reads only. (from memory)

I think INNODB also supports transactions, but don't recall that we're using them.
alt=
@perfectgamestudios
8 years ago
106 posts
yea I tried that don't think Jamroom supports it yet.

as I get errors like

ERROR 1118 (42000) at line 460: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
[
so I guess I would have to change the fields but guess it not a good idea since the update would revert it
brian
@brian
8 years ago
10,148 posts
Jamroom uses InnoDB tables when we need the fastest performance on index scans (such as item_key tables). We use MyISAM when we need to be able to get a fast count of the number of items in the datastore, which is why we use it on the item tables.

That error you are getting is not JR related - you cannot have more than 65535 bytes in VARCHAR columns per InnoDB table. This means if you are using utf8mb4 as the encoding for your table, you can only have 1/4 of that (16,383) since EACH character in the column will use 4 bytes.

Unless you have a specific need for utf8mb4, regular utf8 works fine for JR (since we use binary for emojis).


--
Brian Johnson
Founder and Lead Developer - Jamroom
https://www.jamroom.net

Tags