MYSQL - 为什么要创建2个表并使用INNER JOIN而不是仅使用1个表?
我正在创建数据库结构,我使用MYISAM作为存储引擎。 我正在寻找一些高端付费脚本来了解创建数据库结构的想法。
并注意到它有一个包含帖子所有细节的大表和一个用于存储视图的附加表,就像这样。
db.content
id | title | date | record_num | and | some | others |
和
db.content_views
views | content
所以当加载php页面时它会
@mysql_query("UPDATE content_views SET views = (views + 1) WHERE content = '$id'");
并且在php页面上显示视图时,它使用了像这样的左连接查询
SELECT content.*, content_views.views as views, users.username as username FROM content LEFT JOIN users ON users.record_num = content.submitter
LEFT JOIN content_views ON content_views.content = content.record_num WHERE content.record_num = '$id' LIMIT 0,1
所以我的问题是 两个表都是MYISAM,因此它们都有表锁定,那么为什么不在主内容表中添加视图字段/列?
因为在更新视图时会计算其等待锁定表格,而任何其他LEft连接查询都必须等到更新在单独的表上完成。