我在具有以下规格的服务器上运行MySQL服务器-
双至强四核2.0、2048 MB RAM、1x 160 GB SATA Fedora Core + SSH
但是,插入10000条记录的MySQL过程占用了超过100%的中央处理器和高达1 GB的内存。这是一个简单的insert语句。
为什么MySQL占用这么多内存,我们能做些什么呢?
发布于 2009-11-07 22:48:01
查询中最繁重的部分是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%'),一个简单的索引可以大大提高性能。
新增:此外,选择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'https://stackoverflow.com/questions/1692756
复制相似问题