在MySQL innoDB表中都有微博帖子和与它们相关的投票/表情符号.
需要两种类型的页面:
(A)包含许多微博的列表页面以及他们的投票计数/表情符号在单页上计数(比如说25).
例如.
THE GREAT FUNNY POST
Not so funny content in a meant to be funny post. Lorem ipsum dolor sit amet,consectetur adipiscing elit. Phasellus euismod consequat pellentesque. …..READ MORE….
(3) likes,(5) bored,(7) smiled
.同一页上有24条以上的帖子.
(B)包含单个微博的固定链接页面,其中包含详细的投票计数/表情符号.
THE GREAT FUNNY POST
Not so funny content in a meant to be funny post. Lorem ipsum dolor sit amet,consectetur adipiscing elit. Phasellus euismod consequat pellentesque. Quisque viverra adipiscing auctor. Mauris ut diam risus,in fermentum elit. Aliquam urna lectus,egestas sit amet cursus et,auctor ut elit. Nulla tempus suscipit nisi,nec condimentum dui fermentum non. In eget lacus mi,ut placerat nisi.
(You,Derp and 1 more like this),(5) bored,(7) smiled
第一种方法:
表格1:
post_id | post_content | post_title | creation_time
表#2用于存储投票,喜欢,表情符号:
action_id | post_id | action_type | action_creator | creation_time
显示帖子页面或单个帖子.查询第一个表以获取帖子,
第二个是查询以获取与帖子相关的所有操作.无论何时完成投票等,都会在post_actions表中进行插入.
第二种方法:
表格1:
post_id | post_content | post_title | creation_time | action_data
action_data可以是{“like”:3,“smiles”:4 …}
表2:
action_id | post_id | action_type | action_creator | creation_time
要显示帖子页面,只需查询第一个表格即可获得帖子和帖子.行动数据,
要显示具有详细操作的单个帖子,将查询第二个表以获取与帖子相关的所有操作.无论何时完成投票等,都会在post_actions表和action_data中进行插入
更新表#1的字段以存储更新的计数.
假设有100K帖子和10x动作I.e.创建了100万或更多操作.
方法#2是否有益处?除了必须阅读,修改和更新JSON信息之外,它有什么缺点吗?
无论如何,有哪种方法可以遵循并进一步改进?
根据反馈添加更多信息:
> Python脚本将读取,写入数据.
> MysqL数据库服务器与Web服务器不同.
>由于帖子创建而写的内容很低I.e.每天10000.但是那些由于操作原因可能更高,假设由于投票,表情等行为而每秒最多写入50次.
>我关心的是第二种方法的读取/写入性能比较和第二种方法的问题,以及将来可能会遇到的问题.