MySQLのプロセスは、100%以上のCPU使用率を使用し、メモリの約1 GBの必要
質問
-
私は、サーバーの仕様を次のようにしていた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'
所属していません StackOverflow