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

看板PHP作者 (小心一點)時間7年前 (2017/02/17 22:31), 7年前編輯推噓1(109)
留言10則, 7人參與, 最新討論串2/3 (看更多)
今天中午和晚上 又發生一次 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

02/17 22:52, , 1F
有可能info1放列表用到的,info2放詳細資料
02/17 22:52, 1F

02/17 23:01, , 2F
其實可以做view吧?
02/17 23:01, 2F

02/17 23:07, , 3F
1F 是的 但是info1也很重要 這樣不如只存一table就好 = =
02/17 23:07, 3F

02/17 23:09, , 4F
資料量如果很大 用view反而不好 因為訂單 也會跟商品做join
02/17 23:09, 4F

02/18 08:23, , 5F
是我也會分兩個表 0.0
02/18 08:23, 5F

02/18 09:55, , 6F
一個table更可怕 你連join其他表都會頓
02/18 09:55, 6F

02/18 17:22, , 7F
分割2個表比較好。目前狀況來說,考慮把第2個也分割吧
02/18 17:22, 7F

02/20 00:16, , 8F
看起來是Join的問題 把Join拿掉應該就順了
02/20 00:16, 8F

02/20 00:18, , 9F
Join會有乘積效應 info1取出數量 * info2取出數量
02/20 00:18, 9F

02/20 00:19, , 10F
假設info1有一萬筆 info2有一萬筆 這樣就是一億筆
02/20 00:19, 10F
文章代碼(AID): #1OfmbBY9 (PHP)
討論串 (同標題文章)
文章代碼(AID): #1OfmbBY9 (PHP)