Re: [請益] 在資料表上加上索引,卻讓mysql過載

作者: liisi (小心一點)   2017-02-17 22:31:36
今天中午和晚上 又發生一次
process 每個都在sending data
然後每次都隔了約一小時 就正常了 = =||
因為是我加上索引才這樣 拿掉索引本來想說就好了 結果問題又發生了
我們是用 mysql 5.3
今晚這一次 我就直接叫管理主機的人 幫我加大 key buffer size
希望明天不要再發生
另外..
商品不是10幾萬筆 是幾十萬筆
且每一天 都會增加幾百筆以上
商品的結構 分成2個table (之前的人設計的)
1個 good_info1 , 1個 good_info2
info1 有幾百M , info2卻有5G 是1對1的關係 info1有幾筆 info2就有幾筆
我想說 怎不直接放在同一個table
這樣我每次讀商品 都一定要join 囧rz
※ 引述《liisi (小心一點)》之銘言:
: 大家晚安
: 想請問一下各位前輩
: 我在商品資料表上的幾個欄位 加上索引
: 想讓網站的某個部分 查詢變快一些 (商品資料有幾十萬筆)
: 中午才加上索引 結果下午有客戶反映 網站的瀏覽速度好像變慢了
: 直到下班的時候 網站就掛點了 進入頁面的時間 超級久
: 由於是拍賣平台 這掛點 還得了...........
: 心想說 我今天更新的程式 不足以讓網站掛掉啊
: 就去資料庫 show full processlist;
: 結果數十筆資料 都在 sending data
: 內容幾乎都在做跟商品查詢有關的sql語法
: 然後每個process 一直卡住好幾10秒
: 我找不出到底問題出在哪 後來想想今天還有做啥事
: 才想到 我有在商品的資料表加上索引
: 然後想說 怎可能加上索引 就發生這種事
: 但是還是想說先把索引拿掉看看
: 結果就好了 結果就好了 結果就好了 結果就好了 結果就好了
: 我一整個百思不得其解 囧rz
: 我們網站的主機 是其他部門在管的
: 我也沒辦法得知 主機是否有做啥設定之類的
: 只能來這問問大家 問題到底出在哪
: 拜託了 各位Q_Q
作者: dinos (守護神)   2017-02-17 22:52:00
有可能info1放列表用到的,info2放詳細資料
作者: j87b0003 (I'm 邱老虎)   2017-02-17 23:01:00
其實可以做view吧?
作者: liisi (小心一點)   2017-02-17 23:07:00
1F 是的 但是info1也很重要 這樣不如只存一table就好 = =資料量如果很大 用view反而不好 因為訂單 也會跟商品做join
作者: xdraculax (首席怪叔叔)   2017-02-18 08:23:00
是我也會分兩個表 0.0
作者: wilson200106 (種子種子)   2017-02-18 09:55:00
一個table更可怕 你連join其他表都會頓
作者: terrybob (罪雲樵)   2017-02-18 17:22:00
分割2個表比較好。目前狀況來說,考慮把第2個也分割吧
作者: et69523820 (小豬)   2017-02-20 00:16:00
看起來是Join的問題 把Join拿掉應該就順了Join會有乘積效應 info1取出數量 * info2取出數量假設info1有一萬筆 info2有一萬筆 這樣就是一億筆

Links booklink

Contact Us: admin [ a t ] ucptt.com