2012-01-02 70 views
2

我要在php中編寫搜索腳本(在mysql數據庫中),所以我要用索引來做(加快速度)。我有HTML表單這樣mysql索引變化

HTML:

<select name="search"> 
    <option value="name">Name</option> 
    <option value="surname">Surname</option> 
    <option value="etc">Etc.</option> 
</select> 

所以我打算寫的MySQL索引像這樣=>,例如,如果選擇的名字,我想創建數據庫名稱列索引結果想要刪除該索引(這一切都與PHP),我會爲每個選擇選項這樣做,所以我感興趣的是這種方式是正確的,如果不是我該怎麼做?此外,該表不會更新,但它也可以添加一些其他數據,在這種情況下,我會遇到索引問題嗎?

回答

2

如果我理解正確,你的方法是每次搜索該列時在列上創建一個新的索引?

這絕對不正確。如果表中有任何實際數據量,創建索引可能是一個非常緩慢的過程。一次創建索引/索引。然後,當一個列字段被搜索時,他們會一直在那裏。特別是如果你說的話「表格將不會更新」。我從來沒有遇到過以編程方式創建然後刪除索引的正確方法。

值得注意的是,當你創建一個新的索引時,MySQL會建立一個單獨的信息塊,然後每次在表中進行更改時都要更新。如果表中的數據量非常大並且頻繁更改(迫使索引不斷更新),則可能會遇到一些性能問題。然而,我感覺這不是你的情況。

+0

所以我可以創建一些索引(例如4)?並且在一些索引中還有例如2列? – DaHaKa 2012-01-02 17:20:55

+1

是的,你可以做到這一點。 MySQL非常擅長確定用於查詢的最佳可用索引。我建議你閱讀關於MySQL如何使用索引的[精美MySQL手冊條目](http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html)。 – rdlowrey 2012-01-02 17:23:44

+0

感謝您的意見:) – DaHaKa 2012-01-02 17:26:24