我有一个在线服务(在线词汇培训师)。每个用户都有自己的词汇表。
现在,我不确定我应该如何构建我的 Mysql-DB。
据我所知,我有不同的可能性:
一个表中的所有内容(MyISAM):我将所有词汇存储在一个大型 MyISAM 表中,并添加一列“userid”来标识每个用户的词汇
每个用户都有自己的表(MyISAM):每次创建用户时,程序都会添加一个名为“vocabulary_{userid}”的表,其中 {userid} 是将表连接到用户。
一张表中的所有内容(InnoDB):与第一点类似,但使用 InnoDB 而不是 MyISAM。
问题是,一个大型词汇表可以达到 1 亿行。使用 MyISAM,问题是每个查询都会锁定整个表。所以我想,如果有很多用户在线(并发送很多查询),表可能会被锁定很多。对于 InnoDB,我根本不确定,这是否是一个很好的解决方案,因为我有相当多的 SELECT-、UPDATE- 和 INSERT- 命令。
我希望任何人都可以帮助我。先感谢您。