這種類型的問題已被問過,但不是我的情況。 我想知道什麼適當的排序技術將是我的情況。正確的mysql排序做法
可以說我們有10個用戶在mysql數據庫中存儲每週每天的數據。
我們有一個自動增量的索引字段,但我們也存儲用戶名。
是它更好地通過用戶名mysql數據庫,然後日期每個條目後,當我們做一個DB搜索只輸出數組是
OR
是它更好地做一個數據庫進行排序,然後搜索,排序數組,然後輸出它?
這種類型的問題已被問過,但不是我的情況。 我想知道什麼適當的排序技術將是我的情況。正確的mysql排序做法
可以說我們有10個用戶在mysql數據庫中存儲每週每天的數據。
我們有一個自動增量的索引字段,但我們也存儲用戶名。
是它更好地通過用戶名mysql數據庫,然後日期每個條目後,當我們做一個DB搜索只輸出數組是
OR
是它更好地做一個數據庫進行排序,然後搜索,排序數組,然後輸出它?
行的順序不能保證,因此嘗試對數據庫中的行進行排序是毫無意義的。讓你的查詢得到排序而不是數據庫。
這不是特定於MySQL的。
看到這個答案:
如果您希望在搜索上一組給定的字段很多,換句話說,如果你結了許多命令,例如(或者一個命令重複了很多次):
SELECT <some fields> FROM <table> WHERE a = <some value> AND b = <some value>
然後,用a和b添加索引是個好主意。語法取決於你使用的數據庫系統,但通常是這樣的:
CREATE INDEX <some name> ON <table> (a, b);
的順序和b不應該多大關係的指標。雖然從你所說的話來看,每個用戶都會有一個日期列表,而不是其他方式,所以可能首先是用戶。
然後處理一個WHERE包括「一」和「b」時,SQL系統會自動拾起索引。
注意的是,在最先進的SQL引擎(我知道的PostgreSQL這樣做,MySQL的最肯定來不及)等指標可以自動由SQL管理器生成。經理收集可用於自動生成索引的統計信息。但是,這些不如您明確創建的那些可靠。
如果要按特定順序顯示結果,請在查詢中始終使用'order by'。 – 2014-09-01 01:06:13