表的记录因为比较多,400多万条,因为复制了一个新表,用来备份这400多万条旧记录,把旧的表用来接受新的记录插入,删除了400万条旧记录。现在旧表才10多万条记录。 但是现在旧表查询很慢,取limit 10要40多秒,会是什么原因? 并且从文件来看,表的两个文件大小还是差不多,可一个记录是400多万条,一个是10多万条, du -sm * 1802 receiver_1.MYD 66 receiver_1.MYI 1 receiver.frm 1805 receiver.MYD 56 ...
by killingblade - MySQL - 2005-03-07 11:46:32 阅读(767) 回复(1)
mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能,要修改my.cnf或者在mysql启动的时候加入一些参数。 如果在my.cnf里面修改,需增加如下几行 long_query_time = 10 log-slow-queries = long_query_time 是指执行超过多久的sql会被log下来,这里是10秒。 log-slow-queries 设置把日志写在那里,为空的时候,系统会给慢查询日志赋予主机名,并被附加slow.log 如果设置了参数...
mysql有一个功能就是可以log 下来运行的比较慢的sql 语句,默认是没有这个log 的,为了开启这个功能,要修改my.cnf 或者在mysql 启动的时候加入一些参数。 如果在my.cnf 里面修改,需增加如下几行 long_query_time = 10 log-slow-queries = long_query_time 是指执行超过多久的sql 会被log 下来,这里是10 秒。 log-slow-queries 设置把日志写在那里,为空的时候,系统会给慢查询日志赋予主机名,并被附加slow.log 如...
在慢查询的日志中有这样的记录:Query_time: 0 Lock_time: 0 Rows_sent: 0 Rows_examined: 2。其中Query_time: 0,在配置文件中定义记录慢查询使用时间是1秒,所以这儿应该记录是1秒以上的查询,但为什么会记录是0呢
mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢? 其实打开mysql的慢查询日志很简单,只需要在mysql的配置文件里(windows系统是my.ini,linux系统是my.cnf)的[mysqld]下面加上如下代码: log-slow-queries=/var/lib/mysql/slowquery.log long_query_time=2 注: log-slow-queries 设置把 日志 写在那里,为空的时候,系统会给慢查询日志赋予主机名,并...
在运营网站的过程中,可能会遇到网站突然变慢的问题,一般情况下和 mysql 慢有关系,可以通过开启慢查询,找到影响效率的 SQL ,然后采取相应的措施。mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能,要修改my.cnf或者在mysql启动的时候加入一些参数。 如果在my.cnf里面修改,需增加如下几行 long_query_time = 1 log-slow-queries = log-queries-not-using-indexes long_query_ti...
公司的一个项目, 打算从Access转到mysql. 想不到转了以后执行某些查询惊人的慢. 可以排除是连接方式的事情, 我直接在mysql里面执行查询效率也一样, 可以排除是机器的问题, 我换了两台机器, 我在公司的工作机P4 2.8G/1G内存要1400多秒, 我家里的机器, AMD4400+ X2,要300秒左右.我试过使用各个版本的my.ini, 没有好转. 原本在Access里面结果基本是瞬间出来的, 原Access库也没有做过index.所有的交叉查询速度都下降了. 请mysql高人...
mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢? 其实打开mysql的慢查询日志很简单,只需要在mysql的配置文件里(windows系统是my.ini,linux系统是my.cnf)的[mysqld]下面加上 log-slow-queries=/data/mysqldata/slowquery.log long_query_time=2 注: /data/mysqldata/slowquery.log为日志存放的文件的位置,一般这个目录要有mysql的运行帐号的可...
数据量1万多! 语句: SELECT f.bus_stop_name AS bus2name, f.route_id AS bus2, f.route_direction AS f_dir, e.route_direction AS e_dir, e.route_id AS bus3 FROM route_bus_stop e, route_bus_stop f WHERE f.route_id IN ( SELECT b.route_id FROM route_bus_stop a, route_bus_stop b WHERE a.route_id <> b.route_id AND a.bus_stop_name = b.bus_stop_name AND a.route_id = '23' ) AND f.route_id <> e.route_id AND f...
最近常常碰到网站慢的情况,登陆到后台,查询一下 /opt/mysql/bin/mysqladmin processlist; 发现一个查询状态为: Copying to tmp table 而且此查询速度非常慢,基本一分钟左右才出来,后面是很多查询,状态为lock。 用命令杀掉此查询 /opt/mysql/bin/mysqladmin kill 进程号; 后面的查询一下子都好了。 ok, 找到了问题的原因,此查询效率太低。问一下程序员,找来此查询的代码,用工具进行一下简单分析。 (说明:这里是我不喜...