2012-05-17 61 views
0

假設我有一長串存儲在MySQL數據庫中的名稱(大約10 000個)。把它們分成多個表格有什麼用處?通過名字中的第一個字母? (表A,表B等) 它會加快查詢速度嗎?跨多個表在MySQL數據庫中傳播數據

感謝

+1

數據庫支持*索引*,它使用這個確切的概念。 – goat

回答

2

我同意10k記錄不是很多。確保你使用索引來加快搜索速度。學習在編寫查詢和使用索引時使用Explain

另一個好主意是總是限制你的查詢,除非你必須在一個頁面上列出所有10,000個名字。例如,列出一個列表並將顯示限制爲每次100個名稱,並進行分頁。

你會有更快的搜索,但我無法想象當你沒有第一個字母時搜索某些東西的時候,必須編寫將經過26個不同表格的代碼。

3

10K的記錄是在一個體面的硬件現代RDBMS相當小的數目。除非您顯示更多細節,否則我會避免拆分表 - 沒有性能優勢,而維護和開發將不必要複雜。

0

否 - partition該表。同一類型的數據屬於一個表格。你可以在很多索引上進行分區 - 我將會看看爲了我自己的利益而對列的子字符串進行分區,但它應該是可能的。

2

我不這麼認爲。 10 000不是很多。 5密耳。是另一回事。充分利用指標,讓他們在一起。