I'm building a web games platform/store with node.js and I've been doing research into ways to store the data for the games. Game data will include basic information and a list of keywords.
I first looked into the differences between the MyISAM and InnoDB storage engines. InnoDB seems like the most suitable choice because I want operations to lock at row-level rather than table-level. However, I also found that FULLTEXT searching is only available for MyISAM tables.
My first question is this. Is there a MySQL storage engine which suits my two requirements (the ability to operate on different rows concurrently, and the ability to search the table for specific keywords like on any store)?
Additionally, if the answer to the first question is no, is there other database software (alternative to MySQL) which will meet my requirements and is supported, either out-of-the-box or with a plugin, on node.js?
Whatever I go with, it needs to perform reads fast as a large number of people could be accessing the same game at the same time (hence accessing the same row in the table).
I think you are optimizing a little prematurely. Pick whichever database you want and then just make sure to create an abstracted database layer so that you can swap things out later without too much trouble when/if it becomes necessary.
Unless your web games platform gets super popular super quickly (in which case good for you! that's a good problem to have), pretty much any database will meet your needs. And when it starts to be a problem you'll have a much better idea of where the bottle necks are and what your access patterns look like.
Much more important to just start building since nobody can use it until you do :)