作者liisi (小心一點)
看板PHP
標題Re: [請益] 在資料表上加上索引,卻讓mysql過載
時間Fri Feb 17 22:31:36 2017
今天中午和晚上 又發生一次
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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.0.52.121
※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1487341899.A.889.html
※ 編輯: liisi (123.0.52.121), 02/17/2017 22:35:19
→ dinos: 有可能info1放列表用到的,info2放詳細資料 02/17 22:52
推 j87b0003: 其實可以做view吧? 02/17 23:01
→ liisi: 1F 是的 但是info1也很重要 這樣不如只存一table就好 = = 02/17 23:07
→ liisi: 資料量如果很大 用view反而不好 因為訂單 也會跟商品做join 02/17 23:09
→ xdraculax: 是我也會分兩個表 0.0 02/18 08:23
→ wilson200106: 一個table更可怕 你連join其他表都會頓 02/18 09:55
→ terrybob: 分割2個表比較好。目前狀況來說,考慮把第2個也分割吧 02/18 17:22
→ et69523820: 看起來是Join的問題 把Join拿掉應該就順了 02/20 00:16
→ et69523820: Join會有乘積效應 info1取出數量 * info2取出數量 02/20 00:18
→ et69523820: 假設info1有一萬筆 info2有一萬筆 這樣就是一億筆 02/20 00:19