台灣最大程式設計社群網站
線上人數
2254
 
會員總數:245973
討論主題:189551
歡迎您免費加入會員
討論區列表 >> MySQL >> 主鍵對資料表的影響
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
主鍵對資料表的影響
價值 : 50 QP  點閱數:759 回應數:2
樓主

迷路
高級專家
11071 137
7497 1743
發送站內信

捐贈 VP 給 迷路
有設定主鍵的話,會讓資料表搜尋速度變快?
根據這篇文章(https://read01.com/xAGyK.html)的說法
資料表應設定整數型態的欄位為主鍵,否則會影響資料表的效率

我現在的問題是,資料表有Type(varchar)、No(int)、Image(varchar)三個欄位
Type+No設定唯一索引
搜尋條件只會使用Type+No
資料更新也是用REPLACE INTO
在這樣的情況下,增加一個完全用不到的流水號主鍵,是否有必要?
或是我非得將Type改為int形態欄位,然後將Type+No設為主鍵?

搜尋相關Tags的文章: [ 主鍵 ] ,
本篇文章發表於2016-11-08 13:53
1樓
最有價值解答

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
其實我之前也跟你一樣有同樣的疑問。

為何我不要做成複合鍵的資料來當主鍵呢?
一定得要多一個id來處理。

其實在後來,我有實驗了一下

一個是用 id type no data id為流水主鍵 簡稱a表
一個是用 type no data type+no 拿來當主鍵。簡稱b表

試了一下寫入跟搜尋的效能跟速度。
在搜尋上,a表的搜尋速度有非常的明顯快很多。寫入速度則兩張表的差異不大。

不過那是在mysql 5.3 時期做的笨事。
現在的話不知道有沒有改善就是了。

或許你也可以試一下看看。我自已也是還會保留一個id來當主鍵。
雖然平常也不太會使用到它做搜尋。
不過如果是條列式的指定刪除倒是就會有用了。
本篇文章回覆於2016-11-08 16:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

迷路
捐贈 VP 給 迷路 檢舉此回應
所以就算是無用的流水號主鍵,在搜尋上效率還是會比較快
這樣我明白了,感謝大大的回答
本篇文章回覆於2016-11-10 13:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.