作者eliang ()
看板Web_Design
标题Re: [问题] PHP存取MySQL最浪费时间的地方在?
时间Wed Feb 8 21:18:36 2006
※ 引述《grassboy2 (活力花俏草儿Grassboy大렩》之铭言:
: 我要写的东西…嗯…
: 有部分应该和E-Mail系统有点像吧…
: 里面的结构大略是
: database1
: users (使用者资料)
: mails (所有user收到的讯息)
: 但是人一多…
: mails的资料量就会大增…
: 所以我就想要改成
: users_database
: users (使用者资料)
: mails_database
: (user_id1)
: (user_id2)
: (user_id3)
: :
: :
: (每个user_id都建立一个资料表)
: 如此…在使用者登入的时候,
: 只需要从users_database→users进行搜寻
: 当帐密正确,允许登入後…
: 再连结到mails_database
: 执行select * from 'user_id' (←登入後的id)
: 这种结构…每个user在注册的时候都会建立一个资料表
: 所以到时候mails_database里面应该会有上万个资料表
: 而由於使用者不需要搜寻别人的mails
: 那…这样会比较有效率吗?
: 谢谢大家耐心看完这个问题^^
以下是我的猜想, 不知道对不对
你这样做应该是会比较快, 但是会浪费很多硬碟空间,
因为每多一个资料表, 硬碟就要记录有关这个资料表的额外资讯
一般在设计资料库时, 资料表的数目是固定的,
把资料表数目设计成动态的, 我实在没见过,
而且这样设计也不符合一般资料表设计的流程
所以我的建议是, 你的资料表架构可以不用改,
只要你对 mails_datatbase 的 user_id 栏位建索引档就够了 (这功能 MySQL 有提供),
索引档会在硬碟上建立出类似 Tree 的结构, 可以有效加快查询速度
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.35.56.37
※ 编辑: eliang 来自: 218.35.56.37 (02/08 21:20)
1F:推 grassboy2:谢谢~我看到phpMyAdmin有这个功能了~ 02/08 23:14