Submitted by yejr on 周一, 2007/08/13 - 21:07
问题表现:
以 discuz 论坛的帖子数据表(cdb_posts)为例,该表有 887106 条记录,正常情况下,在一个 P4 2.4G、1G 内存的 PC 机上执行 REPAIR TABLE 的耗时大概 95s,如下:
mysql> SHOW GLOBAL VARIABLES LIKE 'myisam_repair_threads';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| myisam_repair_threads | 1 |
+-----------------------+-------+
mysql> REPAIR TABLE cdb_posts;
+-----------------+--------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+-----------------+--------+----------+----------+
| Forum.cdb_posts | repair | status | OK |
+-----------------+--------+----------+----------+
1 row in set (1 min 35.58 sec)
Submitted by yejr on 周一, 2007/08/13 - 20:24
1. 先看当前的 QCACHE, hits 和 in_cache 均为 0
mysql>SHOW GLOBAL STATUS LIKE 'QCACHE%';
+-------------------------+----------+
| Variable_name | Value |
+-------------------------+----------+
| Qcache_hits | 0 |
| Qcache_not_cached | 1 |
| Qcache_queries_in_cache | 0 |
+-------------------------+----------+
mysql>SELECT * FROM `Weather` WHERE `AddTime` = 1185897600;
2. 第一次查询完之后,再来看下,not_cached 增加了 1, in_cache 变成 1,因为 SHOW GLOBAL STATUS LIKE 'QCACHE%' 本身不会放在 QCACHE 里的
mysql>SHOW GLOBAL STATUS LIKE 'QCACHE%';
+-------------------------+----------+
Submitted by yejr on 周一, 2007/08/13 - 10:24
Submitted by yejr on 周四, 2007/08/09 - 15:17
mysql>explain select * from tbl_name where date_format(EndTime, '%Y-%m-%d') >= '2007-08-08' AND
date_format(EndTime, '%Y-%m-%d') set @dt='2007-08-08' ; set @dt1 = '2007-08-09';
mysql>explain select * from tbl_name where EndTime >= @dt AND EndTime
Submitted by yejr on 周五, 2007/08/03 - 17:03
错误现象如下:
mysql> DELETE FROM JHF_CP_SPOT_RATE WHERE FRONT_DATE = '20070801';
ERROR 1206 (HY000): The total number of locks exceeds the lock table size
把 delete 改成 select,再explain一下,发现返回结果高达300多万,于是检查 max_write_lock_count 的值,是 8446744073709551615,肯定够用了。
再看看 innodb_buffer_pool_size,我的天,才设置默认的 8M,该死的。加大到合适的值,重启 mysql,一切ok。
还有一招,就是delete时分成多次,每次用 LIMIT 限定记录数,这样也ok :)
Submitted by yejr on 周二, 2007/07/31 - 23:33
由于之前的服务器是用虚拟主机的空间,因此邮件服务总是很不稳定,给大家带来了很大麻烦,现在的服务器已经支持邮件服务。那些注册后一直没有密码的朋友可以通过邮件重置密码了,如果还有什么问题,请给我留言,谢谢关注本站。
另外,由于服务器所在IDC的IP段被spamhaus加入黑名单了(我是清白的 :D),有不少限制比较严格的邮箱都无法使用,比如sina,hotmail等,请尽量试用163/126之类的,谢谢!
Submitted by yejr on 周日, 2007/07/29 - 22:40
公交车上,一名乘客拿着一张IC卡想替他的同伴也刷一次,结果司机先生死活也不肯。
相互争执了很久,司机先生操着浓重的北京问冒了这么一句话:您是北京人吗?
乘客回到:我不是北京人。北京人怎么了,你是北京人,还不得天天开车送我去上班!
掌声一片,希里哗啦的。。。。
Submitted by yejr on 周二, 2007/07/24 - 22:33
Submitted by yejr on 周日, 2007/07/15 - 15:56
原文来自:http://hackmysql.com/mysqlreportdoc
mysqlreport 文档
mysqlreport 以很友好的方式显示
MySQL状态变。事实上,它几乎报告了所有的状态。不像 SHOW STATUS 只是在显示了100多个状态值,mysqlreport 则以人性化的方式阐释和格式化了这些状态值,大大增加了其可读性。可以
点击这里 查看mysqlreport的例子。
mysqlreport 的好处是可以快速的查看各种状态参数组,从而了解服务器的运行状态情况,而无需从 SHOW STATUS 的结果中人工计算。例如索引读取比率是个重要的参数,但是 SHOW STATUS 中并没有显示;它是一个推断值(key_reads 和 key_read_requests 的比值)。
Submitted by yejr on 周日, 2007/07/08 - 22:21
花了一周时间,重新整理了一下下载页面,增加 MySQL 发行版的下载,尤其是 3.23.58 和 4.0.27 这两个目前官网上下载不到的发行版。
由于采用的drupal内置的文件下载服务,链接地址是固定的,担心被某些流氓下载软件盯上,无奈之下只能设置登录本站后才能下载,敬请谅解。
如果对本站的服务还有什么建议,请不吝留言。
页面
最近评论