作者grassboy2 (活力花俏草儿Grassboy大렩
看板Web_Design
标题Re: [问题] PHP存取MySQL最浪费时间的地方在?
时间Thu Feb 9 05:52:54 2006
感谢你不吝回答^^~
话说我目前以不更改结构的方式维护我的资料库…
因为发现加了几个索引之後…
我的站速度真的有变比较快^^~
但看到这篇文章…突然又想到…
其实好像也不用每一个id都建一个资料表^^~
直接依某字母开头的id分别放在二十六个资料表好像也可以^^~
里面的资料再记录各个id就ok了
不过我和上一篇回覆的作者e大聊过
初步整理出:
建栏位索引…就相当於将对资料库依栏位建资料夹分门别类
不会查询到该栏位内容相差太多的资料录
那麽有了建栏位索引这个方法…
还有必要使用「将资料分放在二十六个资料表」这个方法吗?
还是说当资料很多的时候…
索引的速度还是不够快呢?
--
哈~这是我最近在忙的网站:
http://FriendTest.twbbs.org/?id=grassboy
: 我个人建议将资料分开储存,使得单一 table 内的资料笔数,
: 能够在可预见的未来内,维持一合理且容易操作维护的大小。
: 资料库的正规化是种在设计时就应考量的作法,
: 将高存取率的资料抽离,存在单一 table 中,也许能使你从某些快取因素获利。
: 回到如何分割资料的情况来看,若是在你最常 select 的 table 中
: (最常见应该是使用者的帐号密码对照表) 有一种足够混乱,但又够稳定的资料
: 那麽透过 hash function 产生 key, 再将资料分配至适当的 table 之中即可。
: 以一堆使用者来说,出生月份或身份证字号的某几位数 (前两位以外)
: 对文章来说,发表时间 timestamp 的末几位数,都是很好的方向。
: 至於应分配到多少 bucket 当中,则视需要 (资料成长,以及大小) 而定。
: (然而像你状况 B 的 10k buckets, 似乎也太多罗)
: 如果你的资料库建立得 "相当有水准"
: 使用者在登入时,只会被检查 "ID / Password" 的这个表格
: (而我们都知道, ID / Password 都不是很乱的资料)
: 那麽加上第三栏,指定其资料所在的表格名称,那也是种可行的方式。
: 我最近有点懒,没空去尝试这些不同方法在主机上实测的结果,
: 所以希望这些空谈能对你有所帮助了 ^^;;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.200.170
※ 编辑: grassboy2 来自: 140.115.200.170 (02/09 05:54)