簡體   English   中英

mysql存儲過程性能問題

[英]mysql stored procedure performance issue

我有這種情況

同一DB的2個,一個在DEV服務器上,另一個在PROD服務器(完全獨立的服務器)上

我的Web應用程序與DEV DB一起在DEV服務器上運行。 我的存儲過程在DEV DB上運行0.300seconds-0.600seconds,但是同一過程在PROD Server上運行3-12secs。(來自DEV服務器上的同一Web應用程序)DB結構,索引和數據都相同。 重大延遲。

唯一的區別是版本DEV-5.0.67-社區PROD-5.1.54-社區

對於普通的sql語句,延遲差異不大。

可能是什么原因? 還可以設置mysql緩存來提高性能嗎?

干杯

順便說一句,讓我補充一點,我存儲的proc正在為其他proc使用數據創建臨時表。 生產數據庫也連接到另一個PROD Web服務器上的同一個Web應用程序,該服務器應該具有傳入流量。 但是,為什么這只發生在我的存儲過程中。 我的其他查詢或普通查詢在時間安排上沒有顯着差異。

僵局會導致延遲嗎?

DEADLOCK was detected, 
OS WAIT ARRAY INFO: reservation count 17394257, signal count 14459620
--Thread 6600 has waited at G:\mysql-5.1.54-winbuild\mysql-community-nt-5.1.54-build\storage\innobase\
Mutex at 02878180 created file .\dict\dict0dict.c line 713, lock var 1
waiters flag 1
Mutex spin waits 0, rounds 367825986, OS waits 15398330
RW-shared spins 2245011, OS waits 810719; RW-excl spins 2893516, OS waits 820381
------------------------
LATEST DETECTED DEADLOCK
------------------------
110408  9:05:45
*** (1) TRANSACTION:
TRANSACTION 0 203543446, ACTIVE 0 sec, OS thread id 6584 fetching rows
mysql tables in use 2, locked 2
LOCK WAIT 761 lock struct(s), heap size 60736, 30170 row lock(s)

要看的東西:

  • 比較您從DEV和PROD獲得的查詢計划
  • PROD中表的大小與DEV比較
  • PROD服務器上的負載-CPU是否已用盡? 我有很多等待嗎?
  • 在PROD中爭用和鎖定

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM