PHP用MYSQL做数据库时,内容字段到底有没必要分表呢?
程序员文章站
2022-05-07 20:28:19
...
比如有一个表里有个 id name content
那这个content我有没必要 经过一些处理
分散到10个表里去?
想知道如果分表 在多少量级别数量下 对比 才会有效率提升 或者根本没必要?
不是 是固定的
文章表是 content : id cid title
栏目表是 channel: id cid name
然后不同栏目对应不同的 分表 比如 contet01 content02 content03 字段是 id aid content
比如 我要找文章ID为2 的 内容
那需要先找到,ID为2属于栏目几,比如ID为2的文章 属于栏目3
栏目3对应 的内容表是 content03
那程序就直接从 content03 中找 aid = 2 的 content字段值
不是 程序如果要找aid=2的 内容,首先在 aid=2的 文章表中 找到 对应的栏目ID 比如是栏目3
然后 栏目3中,有设定,所有归于栏目3的内容 都在 content03表里
然后,程序就去03表里找aid=2的 content值 并输出啦
中间是由栏目表做指定中转的
以前我在用ASP的一款CMS时 它是这样设计的 用的是access数据库 分表 以让数据多时 可以效率高一些
但我不知道mysql里这样分的话 到底有没意义了 所以这里问下大家啊
有必要这样做吗?
文章
id title 描述 (原谅我英语不好,想不起来了)
内容
id content
有必要分开吗? char int 等一些是定长的字段 和 nvarchar text 等自动分表?
那这个content我有没必要 经过一些处理
分散到10个表里去?
想知道如果分表 在多少量级别数量下 对比 才会有效率提升 或者根本没必要?
回复讨论(解决方案)
这个也不好说,以我个人的经验我会在其他10个表加这个表的id而不是content,一般情况id跟content相比占用的空间小些。
还有一点就是:id一般是唯一标示
主表 id name
分表有十个
id aid content 这里边的aid对应主表里的id 我是这种想法
没有必要!
即使是要分表,也不是你的这种分法
没必要把 如果要读取的话 还要到10个表里读取出来再拼?
没必要把 如果要读取的话 还要到10个表里读取出来再拼?
不是 是固定的
文章表是 content : id cid title
栏目表是 channel: id cid name
然后不同栏目对应不同的 分表 比如 contet01 content02 content03 字段是 id aid content
比如 我要找文章ID为2 的 内容
那需要先找到,ID为2属于栏目几,比如ID为2的文章 属于栏目3
栏目3对应 的内容表是 content03
那程序就直接从 content03 中找 aid = 2 的 content字段值
那程序就直接从 content03 中找 aid = 2 的 content字段值 ????
这可能吗?
那程序就直接从 content03 中找 aid = 2 的 content字段值 ????
这可能吗?
不是 程序如果要找aid=2的 内容,首先在 aid=2的 文章表中 找到 对应的栏目ID 比如是栏目3
然后 栏目3中,有设定,所有归于栏目3的内容 都在 content03表里
然后,程序就去03表里找aid=2的 content值 并输出啦
中间是由栏目表做指定中转的
不是自找麻烦吗?
不是自找麻烦吗?
以前我在用ASP的一款CMS时 它是这样设计的 用的是access数据库 分表 以让数据多时 可以效率高一些
但我不知道mysql里这样分的话 到底有没意义了 所以这里问下大家啊
分表也不是你说的那种分法,如果有1千个栏目,岂不是要加1千个表?
完全没有必要把文章分表和栏目表弄在一起。
如果文章要分表,可以使用文章id来分表。
例如文章的id%10 会得到 0,1,2,3,4,5,6,7,8,9,这几个就是分表的表名。
可以根据id来判断内容在哪个分表。
例如要找id=2的文章内容。可以用$id%10 得出 2,然后直接在content02中读取内容。
没有必要!
即使是要分表,也不是你的这种分法
有必要这样做吗?
文章
id title 描述 (原谅我英语不好,想不起来了)
内容
id content
有必要分开吗? char int 等一些是定长的字段 和 nvarchar text 等自动分表?