Join the forums now, and start posting to receive access to our Scripts Vault!
InnoDB is more efficient than MyISAM when you have a write-intensive environment. Pure read operations are slower than with MyISAM, but when you have combinations of reads and writes InnoDB performs well.
I think i'll change back the one that's purely read only to MyISAM then since it's "ridiculously fast at reads" and it won't have anything wrote to it unless i add something or change something.
Also, MyISAM eats space too if you forget to OPTIMIZE the table after performing deletes and etc.
Personally, I always prefer learning the difficult task first.Same reason that I started HTML with a STRICT doctype instead of TRANSITIONAL: holding yourself to a higher standard only improves your abilities.
It really all boils down to time (or call it laziness). Take for example you wanted to delete a player after 30 days of inactivity. With myISAM you would need to create a function that would execute a delete on any table that related to the player table, lets say tables player, player_attacklog, player_messages, player_inventory etc etc etc. Anytime you add another table that references the player table you'll have remember and go back to that function and add another delete.
As for tuning INNODB there are a number of great utilities out there now that analyze your current setup and makes recommendations based on current usage data.
For those that run myISAM and you haven't suffered the dreaded table locking lag then you really don't have any activity (hardware doesn't matter either BTW a lock is a lock).
I posted about count(*) here: http://community.bbgamezone.net/index.php/topic,2204.msg15970.html#msg15970there's also workaround included, when you can do the count(*) without where quite fast, although with reduced precision
I wonder, is there any other reason for this than delete player? I heard this point a few times and when it comes to this functionality, everyone mention only delete player, I can't also find in my code any other place where I could use it. Do you use it for any other thing in your game? Can you find any place in your code that could use it? If there any place in your game code you regret you have not used it? Please, practical usage in existing/upcoming games only, NOT in business software. I know it is a great thing, I can find several uses for it in business software. If I was doing anything else than a BBG I would go for it without hesitation. It's just that I want to know if I will be able to benefit from it when making BBG (other than delete player).
What!? You mean all this buzz on net over count(*) was for no WHERE clause that is used rarely anyway? And that count(*) + WHERE works equally fast on both storage engines? I'm outraged...
Also i have NEVER played the barbarian class in ANY rpg i've ever played. I always go for the glass canon ranged melee class. Knowing full well at any moment i'll die if i don't make the correct decision.
mysql -u root -p < dumpfile.sql