1

MySQL 在“选择”时如何使用内存?MySQL只能加载选定的列并且不会在其余列上浪费任何内存是对的吗?

例如,我有一张桌子1.article ID, 2.article content, 3.publish date, 4. edit time, 5. author ID, 6.with_image (binary, 1:yes, image attached, 0:no image).

文章内容是var(5000),实际上平均大小在2000左右。

以这种方式保留一张桌子是个好主意吗?我应该将它与 article_ID 和 article_content 表分开吗?

我的想法是(如果)MySQL 只能加载选定的列,并且不会在其余列上浪费任何内存。然后我将使用SELECT article_id,author_id,publish_date,edit_time FROM thistable WHERE author_id=requirement ORDER BY publish_date DESC,edit_time DESC limit 50来获取article_id 列表。然后使用SELECT article,article_id WHERE article_id=列表,得到最终结果。

我在某种程度上错了吗?应该修复什么?谢谢你。

4

1 回答 1

1

对我来说看起来不错-是的,查询只会从表中检索所需的列-我不是 MySql 专家,但它可能会尝试缓存尽可能多的数据库,因此您无需担心内存服务器端。客户端将只接收查询的数据(查询在服务器上执行,结果通过网络传回)

除非有充分的理由,否则您不需要将表一分为二。通常在单个表上有一堆列是将表重构为多个表的原因,但目前列数看起来不错

于 2012-06-12T08:41:09.713 回答