台灣最大程式設計社群網站
線上人數
952
 
會員總數:246713
討論主題:190131
歡迎您免費加入會員
討論區列表 >> MySQL >> 資料表加索引導致資料庫當掉
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
資料表加索引導致資料庫當掉
價值 : 500 QP  點閱數:1051 回應數:2
樓主

迷路
高級專家
11376 140
8309 1754
發送站內信

捐贈 VP 給 迷路
客戶在國外租用實體主機
4核+16G+固態硬碟,主機的效能應該是很夠的

客戶自己架設的購物網站,原工程師離職後找我上班的公司接手維護網站
客戶反應資料有問題
檢查後發現資料表沒有建立主鍵以外的索引
找了舊的備份比對,該資料表應該還有索引才對

該資料表有25萬筆資料,157mb大小
我加上一個由流水號主鍵(int(11))和文字欄位(varchar(32))組成的唯一索引
phpmyadmin跑了一下回應502 bad gateway
這時資料庫還能運行,但是速度很明顯變慢
過了幾分鐘後,資料庫就整個沒有回應了
請負責維護主機的工程師重啟資料庫,他說無法重啟
後來只好請主機商重啟主機,然後又花了一個半小時才終於讓網站重新上線

我想請問的問題是
對已經有資料的資料表建立索引會這麼吃資源嗎?
有其它較安全平穩的方式建立索引嗎?(我只會在phpmyadmin操作)
另外,資料表的索引有可能平白無故消失嗎?

搜尋相關Tags的文章: [ 資料表 ] , [ 索引 ] ,
本篇文章發表於2017-11-16 09:40
1樓
最有價值解答

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
1.如果是超過百萬級的資料表,建立索引是很操的事沒錯。

2.資料表索引的確有機會會消失。一般來說可能是在轉移資料的情況下,
或是不正常斷電,或是儲值設備有問題的情況下才會發生

一般像這種的系統。我推測其設定並沒設定到很好才會發生這樣的事。
一般來說像你這樣25萬筆的來說,因該還不至於發生負載不了的情況發生。

我就只能推測是因為系統設定上的問題。造成無法發揮其主機100%的能力。
才會造成這樣的事。

你可以用另一個方式來試試。
先建立一個空的一樣結構的資料表。並將其索引事先建立好。
再用phpmyadmin的資料copy動作(只做資料轉移,不要重建表)
再將資料轉過去。
安全點最好還是用命令。

一般會碰上索引建立會掛掉的情況下。我大多會用這一招。
本篇文章回覆於2017-11-16 11:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
我記得你不是有我的line???
技術上的問題可以用line直接問我會比較快
本篇文章回覆於2017-11-16 11:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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