楼主: benjiam

[原创] 请教一下如何找瓶颈,现有数据200w 一个表

[复制链接]
论坛徽章:
0
11#
 楼主| 发表于 2010-8-11 19:36 | 只看该作者
[root@localhost etc]# ls /var/log/mysql/ -l
总用量 0
[root@localhost etc]#
[root@localhost etc]# cat my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
#long_query_time =2
#log-slow-queries=/var/log/mysqlslow.log
log-slow-queries=/var/log/mysql/mysql_slow.log
long_query_time=1


     
[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#long_query_time =2
#log-slow-queries=/var/log/mysqlslow.logi

log-slow-queries=/var/log/mysql/mysql_slow.log
long_query_time=1


但是我在log mysql 里面找不到日志

使用道具 举报

回复
论坛徽章:
0
12#
 楼主| 发表于 2010-8-11 19:37 | 只看该作者
ps aux | grep mysql 的结果


root      2822  0.0  0.1  5592 1088 ?        S    Aug06   0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/my.cnf --pid-file=/var/run/mysqld/mysqld.pid
mysql     2855  3.7  2.8 133896 29632 ?      Sl   Aug06 265:52 /usr/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking --socket=/var/lib/mysql/mysql.sock

使用道具 举报

回复
论坛徽章:
0
13#
 楼主| 发表于 2010-8-11 19:41 | 只看该作者
/usr/lib/mysql/

drwx------  2 mysql mysql  20K 2009-03-03  bbs
-rw-rw----  1 mysql mysql 3.3G  8月  6 22:54 ibdata1
-rw-rw----  1 mysql mysql 5.0M  8月  6 22:55 ib_logfile0
-rw-rw----  1 mysql mysql 5.0M  8月  6 22:55 ib_logfile1
drwx------  2 mysql mysql 4.0K 2008-12-21  mysql
srwxrwxrwx  1 mysql mysql    0  8月  6 22:55 mysql.sock
drwx------  2 mysql mysql 4.0K  7月 30 19:08 shanghaicity
drwx------  2 mysql mysql 4.0K 2008-12-21  test
drwx------  2 mysql mysql 4.0K  3月 20 17:56 weather



-rw-rw----  1 mysql mysql 8.8K  6月 24 21:43 Address.frm
-rw-rw----  1 mysql mysql 3.9M  6月 24 21:43 Address.MYD
-rw-rw----  1 mysql mysql 429K  6月 24 21:43 Address.MYI
-rw-rw----  1 mysql mysql 8.7K  7月 29 21:13 AddressRecord.frm
-rw-rw----  1 mysql mysql  58M  8月 11 07:09 AddressRecord.MYD
-rw-rw----  1 mysql mysql  58M  8月 11 07:09 AddressRecord.MYI
-rw-rw----  1 mysql mysql 8.5K  7月 30 19:08 AllAddress.frm
-rw-rw----  1 mysql mysql 1.2M  7月 30 19:08 AllAddress.MYD
-rw-rw----  1 mysql mysql 665K  7月 30 19:08 AllAddress.MYI
-rw-rw----  1 mysql mysql   61  6月 24 21:43 db.opt
-rw-rw----  1 mysql mysql  14K  7月 17 18:04 FangZi.frm
-rw-rw----  1 mysql mysql  14K  7月 17 18:04 FangZiHistory.frm
-rw-rw----  1 mysql mysql 689M  8月 11 07:09 FangZiHistory.MYD
-rw-rw----  1 mysql mysql 256M  8月 11 07:09 FangZiHistory.MYI
-rw-rw----  1 mysql mysql 598M  8月 11 07:09 FangZi.MYD
-rw-rw----  1 mysql mysql 234M  8月 11 07:09 FangZi.MYI
-rw-rw----  1 mysql mysql 8.4K  6月 24 21:43 Lab.frm
-rw-rw----  1 mysql mysql    0  6月 24 21:43 Lab.MYD
-rw-rw----  1 mysql mysql 1.0K  6月 24 21:43 Lab.MYI
-rw-rw----  1 mysql mysql 8.5K  6月 24 21:43 LocalAddress.frm
-rw-rw----  1 mysql mysql 779K  6月 24 21:43 LocalAddress.MYD
-rw-rw----  1 mysql mysql 1.1M  6月 24 21:43 LocalAddress.MYI
-rw-rw----  1 mysql mysql 9.2K  6月 24 21:43 NoremalShopes.frm
-rw-rw----  1 mysql mysql  26M  6月 24 21:43 NoremalShopes.MYD
-rw-rw----  1 mysql mysql 2.3M  6月 24 21:43 NoremalShopes.MYI
-rw-rw----  1 mysql mysql 8.4K  6月 24 21:43 Shopes.frm
-rw-rw----  1 mysql mysql    0  6月 24 21:43 Shopes.MYD
-rw-rw----  1 mysql mysql 1.0K  6月 24 21:43 Shopes.MYI
-rw-rw----  1 mysql mysql 8.5K  6月 24 21:43 ShopLabs.frm
-rw-rw----  1 mysql mysql    0  6月 24 21:43 ShopLabs.MYD
-rw-rw----  1 mysql mysql 1.0K  6月 24 21:43 ShopLabs.MYI
-rw-rw----  1 mysql mysql 8.5K  6月 24 21:43 ShopTypes.frm
-rw-rw----  1 mysql mysql    0  6月 24 21:43 ShopTypes.MYD
-rw-rw----  1 mysql mysql 1.0K  6月 24 21:43 ShopTypes.MYI
-rw-rw----  1 mysql mysql 8.6K  6月 25 20:52 SumRecord.frm
-rw-rw----  1 mysql mysql 2.5K  8月 11 07:13 SumRecord.MYD
-rw-rw----  1 mysql mysql 3.0K  8月 11 07:13 SumRecord.MYI
-rw-rw----  1 mysql mysql 8.8K  6月 24 21:43 XiaoQu.frm
-rw-rw----  1 mysql mysql 730K  6月 24 21:43 XiaoQu.MYD
-rw-rw----  1 mysql mysql  99K  6月 24 21:43 XiaoQu.MYI
-rw-rw----  1 mysql mysql 8.7K  6月 24 21:43 XiaoQuRecord.frm
-rw-rw----  1 mysql mysql  72M  8月 11 07:12 XiaoQuRecord.MYD
-rw-rw----  1 mysql mysql 136M  8月 11 07:12 XiaoQuRecord.MYI

使用道具 举报

回复
论坛徽章:
0
14#
 楼主| 发表于 2010-8-11 21:38 | 只看该作者
mysql> explain select AllAddress.Address, AllAddress.XiaoQu, XiaoQuRecord.RecvDate, XiaoQuRecord.TaoShu, XiaoQuRecord.JiaGe, XiaoQuRecord.MianJi, XiaoQuRecord.ZongJia , AllAddress.AddressId from AllAddress, XiaoQuRecord where XiaoQuRecord.RecvDate =20100810 and AllAddress.XiaoQuId = XiaoQuRecord.XiaoQuId order by XiaoQuRecord.XiaoQuId asc limit 0,100;
+----+-------------+--------------+------+-------------------------+---------+---------+------------------------------------+------+-----------------------------+
| id | select_type | table        | type | possible_keys           | key     | key_len | ref                                | rows | Extra                       |
+----+-------------+--------------+------+-------------------------+---------+---------+------------------------------------+------+-----------------------------+
|  1 | SIMPLE      | XiaoQuRecord | ref  | Index 3,Index 4,Index 2 | Index 3 |       9 | const                              | 7798 | Using where; Using filesort |
|  1 | SIMPLE      | AllAddress   | ref  | Index 3                 | Index 3 |       8 | shanghaicity.XiaoQuRecord.XiaoQuId |    1 |                             |
+----+-------------+--------------+------+-------------------------+---------+---------+------------------------------------+------+-----------------------------+
2 rows in set (0.00 sec)


这样结果正常吗? 我看了下php 获取所有的结果需要 300ms

使用道具 举报

回复
论坛徽章:
0
15#
 楼主| 发表于 2010-8-11 21:39 | 只看该作者
XiaoQuRecord | CREATE TABLE `XiaoQuRecord` (
  `Id` bigint(20) NOT NULL auto_increment COMMENT '编号',
  `XiaoQuId` bigint(20) default '0' COMMENT '小区唯一编号',
  `RecvDate` bigint(20) default '0' COMMENT '记录日期',
  `TaoShu` bigint(20) default '0' COMMENT '小区内房子套数',
  `JiaGe` double default '0' COMMENT '小区内房子价格',
  `MianJi` double default '0' COMMENT '小区内房子总面积',
  `ZongJia` double default '0' COMMENT '小区内房子总价值',
  PRIMARY KEY  (`Id`),
  KEY `Index 3` (`RecvDate`),
  KEY `Index 4` (`XiaoQuId`,`RecvDate`,`TaoShu`,`JiaGe`,`MianJi`),
  KEY `Index 2` (`XiaoQuId`,`JiaGe`,`RecvDate`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='小区' |

使用道具 举报

回复
论坛徽章:
0
16#
 楼主| 发表于 2010-8-11 21:39 | 只看该作者
AllAddress | CREATE TABLE `AllAddress` (
  `Id` bigint(10) NOT NULL auto_increment,
  `XiaoQuId` bigint(20) NOT NULL default '0',
  `AddressId` bigint(20) NOT NULL default '0',
  `Address` varchar(200) NOT NULL default '0',
  `XiaoQu` varchar(200) NOT NULL default '0',
  PRIMARY KEY  (`Id`),
  KEY `Index 2` (`AddressId`),
  KEY `Index 3` (`XiaoQuId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |

使用道具 举报

回复
论坛徽章:
0
17#
 楼主| 发表于 2010-8-12 08:54 | 只看该作者
最大的一个问题解决了, 我把索引删除了。 可能是某次重新建表的时候忘记恢复了。
结果 每次 查询都要去390w 条记录里面查询 速度很慢。 现在加了索引 速度很快了
不低于0.07 每次查询。 但是每次php 获取结果还是要接近300ms

使用道具 举报

回复
论坛徽章:
52
2015年新春福章
日期:2015-03-06 11:57:312012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:32:552012新春纪念徽章
日期:2012-02-07 09:59:35
18#
发表于 2010-8-13 13:59 | 只看该作者

回复 #17 benjiam 的帖子

你的分配mysql内存等参数也设置下,另外很好奇连innodb_buffer_pool_size都默认掉了
而且看你的共享表空间:
-rw-rw----  1 mysql mysql 3.3G  8月  6 22:54 ibdata1

看来你innodb是使用共享表空间的

针对性再优化你的服务器端参数,又是一块盘,建议别使用myisam引擎了

使用道具 举报

回复
论坛徽章:
27
数据库板块每日发贴之星
日期:2005-12-22 01:01:31ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:09版主2段
日期:2012-05-15 15:24:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14
19#
发表于 2010-8-14 15:06 | 只看该作者
EN,建议使用INNODB,表如果数据变化不大就打开QUERY_CACHE,
硬盘不好,如果内存大,也可以。 关键是你要用INNODB,可以把数据也CACHE起来。

使用道具 举报

回复
论坛徽章:
0
20#
 楼主| 发表于 2010-8-16 09:01 | 只看该作者
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
#long_query_time =2
#log-slow-queries=/var/log/mysqlslow.log
log-slow-queries=/var/log/mysql/mysql_slow.log
long_query_time=1


     
[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#long_query_time =2
#log-slow-queries=/var/log/mysqlslow.logi

log-slow-queries=/var/log/mysql/mysql_slow.log
long_query_time=1


但是我在log mysql 里面找不到日志

这是为什么呢?

我的配置有什么问题呢?

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表