2011-09-13 64 views
0

我不知道为什么,但是MYSQL在cpu上给了很大的负载。 我必须每秒更新数据库多次,并且用户群正在增长。MYSQL占用100%的CPU。查询缓慢

这是罚款在第一,但CPU负载每天增加,目前

下面是从日志慢速查询:

*Query_time: 4.182654 Lock_time: 0.000070 Rows_sent: 0 Rows_examined: 0 
SET timestamp=1315908025; 
UPDATE Stats SET Time = 1315908020 WHERE Domain = 'facebook.com';* 

为什么会这样的查询这么慢? 慢速查询是否需要更多CPU?

难道这是因为我选择了错误的行类型?

time: int (11), Domain VARCHAR (1000) 

统计表有13k行,并且在增长。

+1

什么是表引擎和每秒钟访问表的次数? –

+1

请提供表格的DDL。 –

+0

DNS名称限制为253个字符;你可能会在那里节省一点空间。 – MSalters

回答

2

缓慢查询的最常见原因是缺少索引。 MySQL必须找到行WHERE Domain='facebook.com'。这是表扫描还是索引查找?

+0

13k表扫描应该仍然需要几分之一秒,除非它每秒或更多扫描数百次。这很可能是上述专栏缺乏索引,但更重要的是,它似乎也是存储引擎的错误配置。 –

+0

我不确定表扫描和索引查找有什么区别。 – user775013

+0

表扫描基本上意味着MySQL必须依次查看每条记录。索引查找意味着有一个有序列表可以用二叉树方式进行搜索 - 速度要快得多。 – Jaydee