我有一个mysql表,用于存储不同项目的用户评级。它包含以下字段:
以及以下指数:
此表有超过1000万行。为了使其更具可伸缩性,我想执行水平分区。特别是,我计划将表分成20个表:
和
这个想法是在我们从tbl_rating_by_item_itemId读取的itemId查询时,当我们从userId查询时,我们从tbl_rating_by_user_userId读取。缺点是每当我想插入或删除评级时,我需要插入或删除两个表。
还有其他解决方案吗?
答案 0 :(得分:0)
您是否尝试过编制索引?创建两个复合索引
INDEX name1 (rating,userid)
INDEX name2 (rating,itemId)
可能有助于提高绩效。
还要考虑表分区。看看Mysql able partitioning 这比物理创建两个单独的表更好。