Re: [問題] PHP存取MySQL最浪費時間的地方在?
※ 引述《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)
推
02/08 23:14, , 1F
02/08 23:14, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 7 篇):