存档

2011年5月 的存档

MySQL Query Cache使用

2011年5月26日 没有评论

介绍: Query Cache保存了SELECT语句的完整结果集,如果缓存命中,那么会跳过解析,预处理,优化,执行等步骤,直接返回结果给客户端。SELECT查询中使 用过的表也会被缓存,如果表发生了变化,那么和此表相关的SELECT查询缓存将会失效,这种方式有些粗暴,毕竟表的改变不一定对SELECT查询结果有 影响,但是这种简单的方式对复杂的系统还是很重要的。 如何命中: MySQL检查缓存的方法很简单,就是去查找一个表,查询的键为用当前SELECT语句,数据库名称,客户端协议的版本,以及其他因素生成的一个哈希值。 MySQL会精确地使用客户端传过来的SELECT查询语句以及其他数据,两条语句中只要字符大小写,空格,注释有一点点不同,那么MySQL就认 为这是两个不同的查询。所以在书写SQL语句时候要保持统一的风格,因为这不仅可以使代码更加的统一,无形中还提高了性能,何乐而不为呢? 以下两条语句MySQL会认为是不同的查询: SELECT * FROM t WHERE …. select * from t where …. 不能被缓存的查询: MySQL对结果不确定的查询不会进行缓存,因为这个本来就无法缓存。如果查询语句中存在NOW()等类似的返回值不确定的函数调用,那么不能被缓存,除 了这些函数以外,用户自定义函数,存储函数,用户自定义变量,临时表,MySQL系统表等如果出现在SELECT语句中,这个查询结果集也不能被 MySQL缓存;子查询,视图,存储过程以及准备语句(Prepared Statement)也不可以被缓存。 Query Cache 是以客户端请求提交的 Query 为对象来处理的,只要客户端请求的是一个 Query,无论这个 Query 是一个简单的单表查询还是多表 Join,亦或者是带有子查询的复杂 SQL,都被当作成一个 Query,不会被分拆成多个 Query 来进行 Cache。所以,存在子查询的复杂 Query 也只会产生一个Cache对象,子查询不会产生单独的Cache内容。UNION[ALL] 类型的语句也同样如此。 缓存的开销: 首先SELECT查询要在缓存中查找对应的缓存结果集;其次如果这个查询是可以被缓存的,并且这个查询结果还没有被缓存,那么需要把此次查询的结果集写入到缓存中;最后,如果对表进行写操作的话,除了基本的IO操作之外,还要把和此表相关的查询缓存失效。 查询缓存可以减少结果集产生的时间,但它不会减少结果集发送到客户端的时间,而这个时间可能往往是性能的瓶颈。 最适合使用缓存的查询是那种需要很多资源来产生结果,但是不需要很多的空间来存储结果的查询,这种查询在存储,返回,以及失效等方面的开销都很小,比如COUNT()操作就适合用查询缓存。 如果对一张表进行比较平均的读写操作,那么查询缓存就不会起很大的作用了。因为写入数据不停地使缓存失效,然后查询又不停地把结果集进行缓存,这种情况下给系统根本带来不了多大的性能提升。 内存管理: MySQL把结果集缓存在内存中,内存池的大小为query_cache_size设置的值减去自身需要的40KB。需要缓存查询结果的时候,服务器会为 查询分配一块内存空间,这个空间的大小至少为query_cache_min_res_unit的值。服务器会把查询结果集保存在这个内存块中,如果这个 块满了之后还有结果没有保存,那么服务器就会再分配一个内存块来保存余下的结果,如果保存完成之后,发现这个内存块还有空间没被使用,那么系统会把这剩下 的空间合并到缓存的可用空间中去,以供下次分配内存块时候使用。 如果有两个并发的查询在进行,并且其结果都是可以被缓存的,那么系统会分配两个内存块分别对其结果进行缓存,如果这两个结果集缓存完毕之后,分配的 [...]

分类: Mysql 标签:

Linux下用SSH退出符切换SSH会话

2011年5月24日 没有评论

如题进行以下操作: 1.登录远程主机 $ ssh root@192.168.2.236 2. 如果要临时回到本地主机,或者其他的主机,输入退出符号:“~”与“Control-Z”组合 当输入“~”不会立即在屏幕上看到,当按下Control-Z并且按回车之后才显示,如下 remotehost$ ~^Z [suspend ssh] [1]+  Stopped                 ssh 192.168.2.236 localhost$ 3.现你已经回到本地,ssh会在后台运行可以通过jobs 来产看 localhost$ jobs [1]+  Stopped                 ssh 192.168.2.236 4.可以将后台运行的 ssh 会话进程切换到前台, 重新回到远程主机, 而无需输入密码 localhost$ fg %1 ssh 192.168.2.236

分类: Ubuntu 命令 标签:

如何解读google-analytics来源数据:流量是怎么算出来的

2011年5月23日 1 条评论

在Google Analytics里,流量的来源可以分为四个大类: 第一类:市场投放活动(Campaigns) 这一类比较常见的是付费关键词即Adwords,如果是Adwords,你不用加码,GA也能非常好的识别出来。当然如果你给自己的某个外部投放加上码,GA也会认为它是一个投放活动。投放活动在GA所有流量来源里,优先级别是最高的。 第二类:自然搜索(Organic) 这个大家很理解,就是Google和Baidu等自然搜索引入的流量。它对于GA来说,优先级别与Adwords是一样的。 第三类:推介网站(Referral) 这一渠道的流量主要是指从其他网站点过来的链接,比如友情链接等,这类来源通常是免费的。这一来源的优先级别低于市场投放活动和自然搜索。 第四类:直接输入(Direct) 直接输入包括几个方面,一个是直接在地址里输入网站,第二个是利用收藏夹与标签,第三个是从桌面软件,比如从QQ,MSN等软件点过来的链接,第四个是如果无法判别流量来源的话,也会归入直接输入。这个来源的优先级是最低的,大家抢的都是这个流量。 前面提到,这四类流量来源的优先级别是不一样的,就是说如果一个访客如果先后从这四种来源中过来,会发生覆盖的情况。比如你今天先在google里 搜索来到网站abc.com,一个小时后,再直接输入abc.com,那么第二次访问的数据,还是会算成google搜索的流量,发生的转化也会这样算。 因为会发生覆盖,所以我们就很有必要了解在什么情况下会发生覆盖,在什么情况下不会发生覆盖。在了解这个规则之前,请先允许我介绍Google Analytics的几个时间设定: 1.Google Analytics的Cookie的有效时间是2年。就是说,如果你3年前来过网站,就算你电脑一直没重装过,也没删除过Cookie,GA都会认为你是新访客。 2.Google Analytics的Campaign Cookie的有效期是6个月。即如果5个月前,你是从免费关键词过来的,之后再也没回来过,那Google Analytics还记得你是从这儿来的,因此如果今天你直接输入abc.com,Google Analytics还会把你算成是从免费关键词进来的。 3.Google Analytics设定的一次访问与会话的有效期是30分钟,这30分钟是指你不发生浏览行为的情况下,一次会话将在30分钟后失效,如果你是超人一直浏览,那么则会在凌晨12点的时候失效。 下面即将介绍的优先级原则,都是在上面这三个时间范围内有效的。 对于这四类流量来源,Google Analytics是如下来定义规则的: 一、同一次访问内覆盖规则: 1.投放活动永远能覆盖别的渠道 2.自然搜索永远能覆盖别的渠道 3.推介网站永远覆盖不了别的渠道 4.直接输入永远覆盖不了别的渠道 二、对于访客回访时的覆盖规则: 1.投放活动永远能覆盖别的渠道 2.自然搜索永远能覆盖别的渠道 3.推介网站永远能覆盖别的渠道 4.直接输入永远覆盖不了别的渠道 举两个例子来说明一下前面的覆盖规则: 案例1: 假设你从来没到过abc.com,今天通过google自然搜索进入了abc.com,那么cookie就记录下来,你是通过自然搜索进来的。此时你在浏 览器内重新打开一个标签(前面那个还没关掉),还是用google搜索abc.com,这次则是通过付费cpc关键词点进了网站,那么这时cookie就 会被覆盖,记录下你是通过付费关键词进入网站的。再新开一个标签,你在浏览别的网站时无意间发现在cba.com上有一个abc.com的链接,然后又点 了过来(30分钟内),这个时候,覆盖没有发生,请注意:在同一次访问内,推介网站覆盖不了别的渠道。如果你还有兴趣打开一个标签页,然后直接输入 abc.com的话,GA就不会理会这件事情,因为直接输入的优先级是最低的。如果你此时做了一次转化(比如下了个订单),在GA里看到数据将会是: 访问 转化 投放活动 1 1 自然搜索 0 0 推介网站 0 0 直接输入 [...]

piwik介绍

2011年5月23日 没有评论

Piwik: 开放源代码的Web统计软件 Piwik是一个PHP和MySQL的开放源代码的Web统计软件. 它给你一些关于你的网站的实用统计报告,比如网页浏览人数, 访问最多的页面, 搜索引擎关键词等等… Piwik拥有众多不同功能的插件,你可以添加新的功能或是移除你不需要的功能,Piwik同样可以安装在你的服务器上面,数据就保存在你自己的服务器上面。你可以非常容易的插入统计图表到你的博客或是网站抑或是后台的控制面板中。安装完成后,你只需将一小段代码放到将要统计的网页中即可。 同时,做为一个开源项目软件,Piwik也鼓励开发人员对其功能进行扩展增强,他们将提供诸多便利来有助于你的二次开发工作。 概况 Piwik 支持插件,你可以通过插件扩展 Piwik 的功能,或者去掉一些不需要的功能。用户的界面支持 Ajax 技术是可定制的,你可以轻松拖放控件,定制自己需要的报告。 使用者独立拥有自己的统计数据,而不是寄存在服务商那里,这样就可以更灵活的使用统计数据,不用担心数据丢失问题。 Piwik 是安装在服务器端的统计工具,安装过程很简单,但是需要服务器支持 PHP5.1 和 MySQL 。安装的时候上传 Piwik 到服务器端,然后打开浏览器,Piwik 会自动运行安装,整个过程不超过 5 分钟。 目前 Piwik 已支持中文。 Piwik-文档 如何安装Piwik? 如果你的服务器满足技术需求,按照这个一步一步的安装指南,Piwik将在5分钟内运行。对中高流量的网站,看一下如何设置自动存档页让Piwik超高速运行! 如何更新Piwik? 阅读如何将Piwik从老版本更新到最新版本的快速指南。 目标跟踪 更多的了解如何用Piwik创建和跟踪目标,提供了一些博客、电子商务网站及内容网站跟踪的例子。 Javascript跟踪 了解如何使用Piwik Javascript标签自定义页面名称,跟踪目标或下载。 常见问题 看一下关于Piwik最常见的问题,安装、更新、配置、插件等等。 Piwik跟踪API 了解如何不用Javascript而用图片Tracker,以及/或直接调用HTTP跟踪API用Piwik跟踪用户。 Piwik分析API 你可以使用Piwik分析API请求一个或几个网站的网站分析报告,指定日期或时间(天、周、月、年)。这个API也允许创建、修改和删除网站、用户和目标,因此,Piwik能与你的现有程序轻松整合在一起。 Piwik开发者文档 Piwik开发者园地里可以找到所有的开发者文档:如何使用Piwik API、如何建立插件、教程、数据库模式等等。如果你想熟练掌握Piwik,那么请仔细研究这些内容。

分类: PHP开源, WEB优化 标签:

使用mysqldumpslow和mysqlsla分析mysql慢查询日志

2011年5月19日 没有评论

MySQL优化不是一劳永逸的工作,而是一个持久战。其中慢查询日志的分析是一个重要手段,以前我总是手动大概看看,不过这实在不是长久之计,今天试用了一下mysqldumpslow和mysqlsla,感觉效率高多了。 mysqldumpslow mysqldumpslow是官方提供的perl脚本,所以你也不用费劲巴拉的安装了,只要有mysql的环境基本就能用: mysqldumpslow -s c 其中参数(-s c)的意思就是按照各种慢查询条数排序。不过mysqldumpslow有一个挺不爽的缺点,就是查询的结果只有一些抽象的SQL,没有可供实际运行的SQL例子。 mysqldumpslow, mysql官方提供的慢查询日志分析工具. 输出图表如下: 主要功能是, 统计不同慢sql的 出现次数(Count), 执行最长时间(Time), 累计总耗费时间(Time), 等待锁的时间(Lock), 发送给客户端的行总数(Rows), 扫描的行总数(Rows), 用户以及sql语句本身(抽象了一下格式, 比如 limit 1, 20 用 limit N,N 表示). mysqlsla mysqlsla是 hackmysql.com推出的一款日志分析工具(该网站还维护了 mysqlreport, mysqlidxchk 等比较实用的mysql工具) 整体来说, 功能非常强大. 数据报表,非常有利于分析慢查询的原因, 包括执行频率, 数据量, 查询消耗等. 安装方法如下: tar zxf http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz cd mysqlsla-2.03 perl Makefile.PL make make install 使用起来很简单: /path/to/mysqlsla slow.log 格式说明如下: [...]

分类: Mysql 标签:

Google analytics生成新的站点配置及统计代码添加

2011年5月18日 没有评论

最近问我Google analytics如何使用的人比较多,就写一下Google analytics生成新的站点配置及统计代码添加,这个基本的操作。 1.创建Gmail账号 有人问我为什么要创建Gmail账号,不用gmail账号也可以查看及配置google analytics. 这话不假,可你没有理解google的意思。 首先gmail的强大不光是基本收发邮件的用户体验上,他的安全超出常人想像,据说他是国内唯一使用加密方式传输的,如何加密,又如何强只知道一点,使用是的https加密,网上的黑客,网警等抓取传输过程中的包,比如通信过程中路由传输过程中的信息包,是无法破解其中的内容的。 用它可以说是安全的,可是杯具啊,使用的人都知道,也知道如何解决收发邮件问题。 其次它是google所有服务的统一账号, 这些你又使用了多少,从事网络工作,这些功能没有使用过半,这叫悲哀。 2.创建新的网站配置 配置首页,添加新账号 同意注册 输入网站网址,配置时区 输入用户名 同意google analytics的条款 创建成功,可以看到统计代码 在此说明一下域名选择项: 单个域名(默认) 一般情况都选这个,只记录主域名,也就是www开头的域名。 一个域名包含多个子域名 多个子域名,如www.lampblog.net,bbs.lampblog.net等等 多个顶级域 收集不同域名的信息,如www.lampblog.net,www.lampblog.com,www.lampblog.cn等 3.添加统计代码到网站上 复制以上代码到要统计的网站上,添加在页面头部,每个页面都要添加的。 除了此外可以得到统计代码,在配置中心->单个账号->单个站点配置文件->修改-> 单个配置文件,点修改 检查状态 来到统计代码查看页 4.查看统计数据 在添加完统计代码后,要确认代码是否添加好了,GA是否收到了数据。Google analytics在收到数据2~12个小时内显示报告数据,不是立马就可以看到统计数据的。Google analytics需要一定的时间去处理收到的数据,因为它和其它统计工具不一样,好好看看它细分就明白了。 再说两点,最近Google analytics起用了新版,功能得到了加强,处理数据的时间似乎更长了,虽然可以看到今天和昨天的数据,可在报表时间选择上,不能和其它天一起查看,只能做单独这两天的查看,比如今天是18号,你可以查看1-16号,17-18号,但不能查看1-18号. 第二点是统计代码添加好了,也有数据了,可你还得验证是否是整个网站的每天页面都添加的统计代码。我经常发现客户把大部分页面都添加了统计代码,可有一两个主要页面没有添加,主要因为这两个页面的模版不一样,调用的不是公共头部模版,或是这个页面就没有头部。这个得认真检查下,如果有专门的网站技术人员,要和技术人员说清楚,他会处理好的。

wordpress istudio-theme主题

2011年5月17日 没有评论

今天看别人的博客,发现一个不错的wordpress主题istudio-theme,记录下来,供以后使用。 下载地址:http://wordpress.org/extend/themes/istudio-theme

分类: Wordpress 标签:

MYSQL慢查询日志

2011年5月13日 没有评论

在mysql的配置文件 /etc/mysql/my.cnf 里添加以下两行 log_slow_queries = /var/log/slowlog/3000.log    //如果需要,开启慢查询 long_query_time = 2                //慢查询设置的时间,超过此时间就记录 便可以记录查询时间过长的sql语句,从而sql语句进行优化 上面的2是2秒,当然可以改成小数,真正记当用时较长的sql词句

分类: Mysql 标签:

网站分析团队问题

2011年5月12日 没有评论

网站分析是一个新兴的也是比较复杂的行业,以下的议题会在网站分析过程中经常碰到。 一、成功 1.如果想要把网站分析提高到一个更高的层次,你必须向所在的组织证明以下提到团队的价值。 1)如果想为公司带来价值,不应该仅停留在关注报告上 2)外包常规的报告或者让报告自动化,从而来让分析师有时间关注在有意义的项目上 3)寻找与内部团队合作的机会 2.和几个商业组织或者部门之间协同合作是很困难的,为了成功,你需要有效地管理这些团队。 1)要积极主动,不能等到其他部门提需求才被动反应 2)常规召开一个会议,确定工作优先级和检查进度 3)分配不同的组员去负责不同部门的配合活动,给每个项目分配不同的PMO(project management officer). 二、策略 关于策略,一些人可能会说:“人们通常不知道目标是什么”还有“不理解策略是什么,因为关于什么是网站的重点都没有达成一致的意见。”同时,大家也意识到明确组织策略的重要性,因为直接影响到实施所产生的数据有效性和相关性。 三、领导能力 在网站分析的项目中,很多人可能因为没有真正的决策权而很沮丧。这时候你需要有权威和影响力的人物支持你,但是这个过程最好是数据来驱动和支持,并不仅仅是人。 四、组织结构 网站分析部门与IT部门的合作是比较大的一个障碍,例如涉及代码的部署和实施方面,这就需要分析人员有一定的代码基础,但是不是应该把网站分析放在IT部门呢?其实不是的,应该把分析组放在市场营销部门,因为商业策略的理解是最主要的,代码的实施只是执行,一般来讲,不会有太大的难度,所以放到市场营销部门是一个很不错的选择,这样可以减少沟通成本,提高工作效率。 五、培训 很多组织认识到正式培训的重要性,但是内部没有能力可以提供。组织内很多用户进入网站分析工具未能找到所需数据后,感觉很沮丧;解决的办法是可以成立一些会议定期解答工具使用方面的问题,必要时可以提供一帮一的培训。 六、数据 1)组织需要相信数据,否则分析团队会失去支持和信任,分析工具也会被视为没有价值 2)同时分析的实施是一个不断持续的过程,不是一劳永逸的,因为有很多新的网络营销目标被创建 3) 定期地审阅报告,看看报告是否相关,或者需要提高 4)确保所有实施的项目都包含数据校对的步骤 5)在所有新的页面,网站,程序,活动跟踪测试后,再正式地发布活动,确保活动万无一失 七、沟通 沟通是成功很重要的一个因素,尤其是在内部其中一个组更改其衡量指标以后,有很好的沟通机制能够确保其他组的人也知道这个事情。同时虽然制度或者系统文件的更新有时候很困难,但是没有它的话,组织会变得手忙脚乱,特别是关键人物突然离职的时候。 以下是沟通中需要注意的地方: 1)每个报告都应该有具体的文档,并且每一个指标和变量都必须有解释性文字介绍定义和用途 2)制定网站量度与指标白皮书,并且在内部传播,提高透明度 3)发布一封关于分析组织结构的信息

分类: WEB优化 标签:

解决phpmyadmin-1800秒超时链接失效问题

2011年5月11日 没有评论

在phpmyadmin的配置文件里 \usr\share\phpMyAdmin\libraries\config.default.php 修改 $cfg['LoginCookieValidity'] = 1800; 为 86400

分类: Lamp 安装配置 标签: