MySQLのプロセスは、100%以上のCPU使用率を使用し、メモリの約1 GBの必要

StackOverflow https://stackoverflow.com/questions/1692756

質問

-

私は、サーバーの仕様を次のようにしていたMySQLサーバを実行しています

デュアルのXeonクワッドコア2.0、2048メガバイトのRAM、1×160ギガバイトSATA Fedora Coreの+ SSH

しかし、10000件のレコードを挿入するためのMySQLのプロセスは、CPUの100%以上を取ると1 GBのRAMまで。 それは、プレーン挿入文です。

なぜMySQLはそれほどメモリのあまり、何がそれについて行わことができますを取っているのですか?ます。

役に立ちましたか?

解決

あなたのクエリ内の最も重い部分はSELECTです。

Select FirstName, LastName, CountryID, Address, Phone
From Test2.Customer
Where UserID Between 1 and 5000
and CustomerID in (Select CustId from Cust_Details Where CustName like 'Mi%')

ネストされたクエリは、おそらく行ごとに繰り返されます。あなたはこの実行しているEXPLAIN PLAN +すべてのSELECTクエリを確認することができます。私は「のような」演算子は、非インデックス・カラムに対して使用されていると思います。この場合(like 'xyz%')で単純なインデックスは、多くのパフォーマンスを向上させることができます。

は、[追加されました:しかも、SELECT CUSTIDを...しなければならない出力idすべてで必要とされていない5000よりも大きいの、。 Cust_Detailsに複合指数(CUSTID、CUSTNAME)も有用でなければならない。

の代わりに参加usignしてみます:

Select FirstName, LastName, CountryID, Address, Phone
From Test2.Customer c, Cust_Details cd
Where c.UserID Between 1 and 5000
and c.CustomerID=cd.CustId
and left(cd.CustName) = 'Mi'
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top