mysql陷入迴圈 mysqld會陷入迴圈嗎?

2021-10-18 05:33:58 字數 1243 閱讀 9137

我有乙個每天晚上執行的批量作業。它將幾十個資料庫中的某些新資料收集到乙個**資料庫(名為「ac」)中,然後與sphinxsearch一起用於自動完成。批量作業及其查詢已執行可靠一年以上。

今天我發現批處理作業卡住了。 mysqld在乙個核心上使用100%的cpu,通常需要5分鐘的查詢在13小時後仍在執行。

dtruss顯示mysqld不斷從查詢中涉及的資料檔案中讀取資料。相關索引全部在mysqld的快取中。沒有磁碟io,因為mysqld只是讀取資料檔案,而且它們被freebsd緩衝在記憶體中。

use wxyz;

create or replace view ac_view as select

j.id as pid, j.parent as ppid,

table_a.name as name_a,

table_d.name as name_d,

table_s.name as name_s

from junction j

inner join table_a on table_a.id=j.aid

inner join table_d on table_d.id=j.did

inner join table_s on table_s.id=j.sid

where s.inserted > '2010-12-21 03:00:00';

insert ignore into ac.ac_schematic

(pid, ppid, aid, did, sid)

select pid, ppid, aid, did, sid

from ac_view v

inner join ac.dict_a a on a.name=v.name_a

inner join ac.dict_d d on d.name=v.name_d

inner join ac.dict_s s on s.name=v.name_s;mysqld正在讀取的檔案是:

ac/ac_schematic.myd (more than anything)

wxyz/junction.myd

wxyz/table_a.myd

wxyz/table_d.myd

wxyz/table_s.myd伺服器版本是5.0.87

這很好奇,我很困惑。查詢無法花費12個小時以上的cpu時間。我敢打賭,我可以讓查詢無限期地與cpu計量器掛鉤。

任何想法,我可以檢查,試圖找出發生了什麼。我有乙個相當不錯的dtrace工具可用。

mysqld與mysql的關係

mysqld是服務,mysql是客戶端。mysqld其實是sql後台程式 也就是mysql伺服器 它是關於伺服器端的乙個程式,mysqld意思是mysql daemon,在後台執行,監聽3306埠,如果你想要使用客戶端程,這個程式必須執行,因為客戶端是通過連線伺服器來訪問資料庫的。你只有啟動了mys...

為什麼會陷入死迴圈

看似簡單的一段程式如下 int main 在unix linux平台下,gcc編譯執行會陷入死迴圈.因為變數 i 和陣列 j 8 是儲存在棧中,預設是由高位址向低位址方向儲存.輸出變數位址可以發現 i 儲存位置在0xbfd90dec,j 0 j 1 j 7 在記憶體的位址分別是0xbfdab05c ...

yum安裝mysql後沒有mysqld

在centos中用命令 yum install mysql安裝資料庫,但裝完後執行mysqld啟動mysql的時候提示找不到,通過 find grep mysqld 也沒找到mysqld的目錄,後來在google上搜尋下,才知道用yum安裝時候mysql也有三個引數的。yum install mys...