MySQL进程使用超过100%的CPU使用率,需要大约1 GB的内存

时间:2009-11-07 11:29:07

标签: mysql memory process cpu uses

我在服务器上运行MySQL服务器,其中包含以下规范 -

Dual Xeon Quad Core 2.0,2048 MB RAM,1x 160 GB SATA Fedora Core + SSH

但是,用于插入10000条记录的MySQL进程占用了超过100%的CPU和高达1 GB的RAM。 这是一个简单的插入声明。

为什么MySQL会占用大量内存以及可以采取哪些措施?

1 个答案:

答案 0 :(得分:1)

查询中最重的部分是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'运算符用于非索引列。在这种情况下(like 'xyz%'),一个简单的索引可以大大提高性能。

[补充:此外,SELECT CustId ...必须输出大于5000的id,根本不需要。 Cust_Details上的复合索引(CustId,CustName)也必须有用。]

尝试使用联接代替:

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'