Archive for March, 2009

根据status信息对MySQL服务器进行优化(二)

Wednesday, March 25th, 2009

续根据status信息对MySQL服务器进行优化(一),直入主题。 六、进程使用情况 mysql> show global status like 'Thread%'; +-------------------+-------+ | Variable_name     | Value | +-------------------+-------+ | Threads_cached    | 46    | | Threads_connected | 2     | | Threads_created   | 570   | | Threads_running   | 1     | +-------------------+-------+ 如果我们在MySQL服务器配置文件中设置了thread_cache_size,当客户端断开之后,服务器处理此客户的线程将会缓存起来以响应下一个客户而不是销毁(前提是缓存数未达上限)。Threads_created表示创建过的线程数,如果发现Threads_created值过大的话,表明MySQL服务器一直在创建线程,这也是比较耗资源,可以适当增加配置文件中thread_cache_size值,查询服务器thread_cache_size配置: mysql> show variables like 'thread_cache_size'; +-------------------+-------+ | Variable_name     | Value | +-------------------+-------+ | thread_cache_size | 64    | +-------------------+-------+ 示例中的服务器还是挺健康的。 七、查询缓存(query cache) mysql> show global status like 'qcache%'; +-------------------------+-----------+ | Variable_name           | Value     | +-------------------------+-----------+ | Qcache_free_blocks      ...

根据status信息对MySQL服务器进行优化(一)

Tuesday, March 24th, 2009

网上有很多的文章教怎么配置MySQL服务器,但考虑到服务器硬件配置的不同,具体应用的差别,那些文章的做法只能作为初步设置参考,我们需要根据自己的情况进行配置优化,好的做法是MySQL服务器稳定运行了一段时间后运行,根据服务器的"状态"进行优化。 mysql> show global status; 可以列出MySQL服务器运行各种状态值,另外,查询MySQL服务器配置信息语句: mysql> show variables; 一、慢查询 mysql> show variables like '%slow%'; +------------------+-------+ | Variable_name    | Value | +------------------+-------+ | log_slow_queries | ON    | | slow_launch_time | 2     | +------------------+-------+ mysql> show global status like '%slow%'; +---------------------+-------+ | Variable_name       | Value | +---------------------+-------+ | Slow_launch_threads | 0     | | Slow_queries        | 4148 | +---------------------+-------+ 配置中打开了记录慢查询,执行时间超过2秒的即为慢查询,系统显示有4148个慢查询,你可以分析慢查询日志,找出有问题的SQL语句,慢查询时间不宜设置过长,否则意义不大,最好在5秒以内,如果你需要微秒级别的慢查询,可以考虑给MySQL打补丁:http://www.percona.com/docs/wiki/release:start,记得找对应的版本。 打开慢查询日志可能会对系统性能有一点点影响,如果你的MySQL是主-从结构,可以考虑打开其中一台从服务器的慢查询日志,这样既可以监控慢查询,对系统性能影响又小。 二、连接数 经常会遇见"MySQL: ERROR 1040: Too many connections"的情况,一种是访问量确实很高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力,另外一种情况是MySQL配置文件中max_connections值过小: mysql> show variables like 'max_connections'; +-----------------+-------+ | Variable_name   | ...

jQuery选择器使用演示

Monday, March 16th, 2009

上周在内部和大家分享了一下jQuery的选择器,做了一个简单的demo:http://chaoqun.17348.com/static/jQuery-selector-demo.html,直接调用的google js api,可以直接下载到本地运行,列出了一些常用的选择器方法,最后一个是动态选择器,可以传入一个变量来选择。文档就不写了,参阅:http://docs.jquery.com/Main_Page,直接看Demo演示吧。

我也不知道的MySQL

Friday, March 13th, 2009

以前看过很多文章说MySQL一次查询只能用到一个索引,在实践中也没注意,一直奉为金科玉律,以此教育自己不要乱建索引,殊不知已是明日黄花。 MySQL5.0以后引入了index_merge,在一些特定的查询中可以合并索引,详细的内容查看[中文] [英文],接着测试一下,还是那张表,数据还是10,000条。 mysql> desc tbl_name; +-------+--------------+------+-----+---------+-------+ | Field | Type         | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | uid   | int(11)      | NO   | MUL | NULL    |       | | sid   | mediumint(9) | NO   |     | NULL    |       | | times | mediumint(9) | NO   |     | NULL    |       | +-------+--------------+------+-----+---------+-------+ 3 rows in set ...

Python转换office word文件为HTML

Thursday, March 12th, 2009

这里测试的环境是:windows xp,office 2007,python 2.5.2,pywin32 build 213,原理是利用win32com接口直接调用office API,好处是简单、兼容性好,只要office能处理的,python都可以处理,处理出来的结果和office word里面“另存为”一致。 #!/usr/bin/env python #coding=utf-8 from win32com import client as wc word = wc.Dispatch('Word.Application') doc = word.Documents.Open('d:/labs/math.doc') doc.SaveAs('d:/labs/math.html', 8) doc.Close() word.Quit() 关键的就是doc.SaveAs('d:/labs/math.html', 8)这一行,网上很多文章写成:doc.SaveAs('d:/labs/math.html', win32com.client.constants.wdFormatHTML),直接报错: AttributeError: class Constants has no attribute 'wdFormatHTML' 当然你也可以用上面的代码将word文件转换成任意格式文件(只要office 2007支持,比如将word文件转换成PDF文件,把8改成17即可),下面是office 2007支持的全部文件格式对应表: wdFormatDocument = ...

你可能不知道的MySQL

Wednesday, March 11th, 2009

前言: 实验的数据表如下定义: mysql> desc tbl_name; +-------+--------------+------+-----+---------+-------+ | Field | Type         | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | uid   | int(11)      | NO   |     | NULL    |       | | sid   | mediumint(9) | NO   |     | NULL    |       | | times | mediumint(9) | NO   |     | NULL    |       | +-------+--------------+------+-----+---------+-------+ 3 rows in set (0.00 sec) 存储引擎是MyISAM,里面有10,000条数据。 一、"\G"的作用 mysql> ...

一生所爱

Wednesday, March 4th, 2009

用自建的推荐系统给自己推荐歌曲,排在前面的居然有一首《一生所爱》,看大话西游的时候就特别喜欢这首歌,一直不知道叫什么名字,人生要是如算法那样简单该是多么的好。 一生所爱 曲:卢冠廷 词:唐书琛 编:卢冠廷 唱:卢冠廷 从前现在过去了再不来 红红落叶长埋尘土内 开始终结总是没变改 天边的你飘泊白云外 苦海翻起爱浪 在世间难逃避命运 相亲竟不可接近 或我应该相信是缘份 情人别后永远再不来(消散的情缘) 无言独坐放眼尘世外(愿来日再续) 鲜花虽会凋谢(只愿)但会再开(为你) 一生所爱隐约(守候)在白云外(期待) 苦海翻起爱浪 在世间难逃避命运 相亲竟不可接近 或我应该相信是缘份 苦海翻起爱浪 在世间难逃避命运 相亲竟不可接近 或我应该相信是缘份 自觉好像一条狗。