我有一个庞大的数据。在database.l中存储这些数据的最佳方法是什么?将这些数据存储到一个表或几个表中的存储? 如果我想将数据保存到多个表,我必须为每个用户创建表。
答案 0 :(得分:3)
我认为每个用户的表格不是很好,请阅读上面的链接,它将为您设计一个更好,更高效的数据库
MySQL ::数据库规范化简介 http://ftp.nchu.edu.tw/MySQL/tech-resources/articles/intro-to-normalization.html
答案 1 :(得分:2)
在关系型dbms中,数据表大小不是指定数据库设计,而是指定实体的关系。
所以,即使有一张包含大量多媒体数据的数十亿条记录的表格,你也不会制作这几张桌子,因为这张桌子太大了。
使用RDBMS可能是一种错误的方法。也许NoSQL dbms会更好。即使是简单的文件系统也是可行的方法。
然而,或许,RDBMS 是正确的方法。我们不知道,因为您几乎没有告诉我们您的数据库。你的dbms可能会认为你看起来很重要。
您是说要为所有用户提供一个包含数据的大表,但每个用户只对自己的数据感兴趣?然后简单地按用户分区表。数据库设计将保持不变,只有底层存储和内部数据访问才会不同。只要您的查询始终选择一个用户的数据,您将保持在一个分区内,并且数据访问速度将会很快。
以下是如何对表进行分区:
alter table user_movies
add primary key (user_id, movie_id)
partition by hash(user_id) partitions 100;
答案 2 :(得分:1)
在做出决定之前,您应该考虑很多因素。但是这个怎么样,尝试“no-sql”类型的db,每个用户都将被视为键,有关该用户的信息将被视为值。