手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2008年08月的文章

PHP 4官方支持结束

自2000年5月22日发布正式稳定版8年之后,8月8日标志着PHP 4生命的终结,官方不再提供支持,不会再有安全补丁发布。PHP 4.4.9是PHP 4.x的最后一个版本。管理员和开发者失去了最后一个不升级到新一代版本开发环境的理由。过去几年,PHP 5提供了多种升级的途径,它的最新版本是5.2.6。但PHP 4发布8年之后,仍然有相当多的系统将不会在未来迁移到PHP 5,其中有相当的一部分可能永远也不会升级到PHP 5。
 对于那些不升级到新版PHP的用户,PHP专家Stefan Esser将通过Suhosin项目继续为PHP 4.x系列提供第三方安全补丁。

Tags: php, 支持, 终结

[分享]mysql数据库索引查询优化的分享

问题描述:


我们要访问的表是一个非常大的表,四千万条记录,id是主键,program_id上建了索引。
执行一条SQL:

select * from program_access_log where program_id between 1 and 4000

这条SQL非常慢。
我们原以为处理记录太多的原因,所以加了id限制,一次只读五十万条记录

select * from program_access_log where id between 1 and 500000 and program_id between 1 and 4000

但是这条SQL仍然很慢,速度比上面一条几乎没有提升。
Mysql处理50万条记录的表,条件字段还建了索引,这条语句应该是瞬间完成的。


问题分析:


这张表大约容量30G,数据库服务器内存16G,无法一次载入。就是这个造成了问题。
这条SQL有两个条件,ID一到五十万和Program_id一到四千,因为program_id范围小得多,mysql选择它做为主要索引。
先通过索引文件找出了所有program_id在1到4000范围里所有的id,这个过程非常快。
接下来要通过这些id找出表里的记录,由于这些id是离散的,所以mysql对这个表的访问不是顺序读取。
而这个表又非常大,无法一次装入内存,所以每访问一条记录mysql都要重新在磁盘上定位并把附近的记录都载入内存,大量的IO操作导致了速度的下降。

问题解决方案:
1. 以program_id为条件对表进行分区
2. 分表处理,每张表的大小不超过内存的大小
然而,服务器用的是mysql5.0,不支持分区,而且这个表是公共表,无法在不影响其它项目的条件下修改表的结构。
所以我们采取了第三种办法:

select * from program_access_log where id between 1 and 500000 and program_id between 1 and 15000000

现在program_id的范围远大于id的范围,id被当做主要索引进行查找,由于id是主键,所以查找的是连续50万条记录,速度和访问一个50万条记录的表基本一样

总结:
这是一个在千万笔记录表中由于使用了索引导致了数据查找变慢的问题,有一定的典型性和大家交流下!

————END————

索引这个东西很害人的。好的时候很好。。。用的不好。那真的是害己害人啊。

本来来自:PHP5研究室,责编:抽烟的蚊子,网址:http://www.phpv.net/html/1624.html

Tags: mysql, database, 索引, 优化, 技巧

你能坚持吗?

感谢小余给我们带来的文章。本想根据其中的内容想润色一下,但仔细思考后还是放弃了。每个人的思想和观念都有其独到之处,如果我强行改变,那就是改变原作者的思路了。

原文网址:http://www.cnblogs.com/yice/archive/2008/06/09/1216337.html

内容开始:


    一个大老板一天心血来潮巡视他的一家工厂,看着看着瞧见一个员工正埋着头努力地工作着。他走过去拍拍员工的肩膀说道:"好好干吧!我以前也是和你一样。"员工抬起头来,笑一笑,也伸手拍拍大老板的肩膀,说:"你也好好干吧!我以前也是和你一样。"
    还是用一个小幽默来作为文章的开头,今天所要谈谈的主要是关于创业的一些事情。这几天遇到的事情和聊到的事情都关于创业的,有一个老朋友在深圳准备自立门 户打江山。他也刚好有个机会接了一个小项目,按照他的分析这个项目应该有一定的市场,希望我能够有机会一起合作。我看过项目的一些资料,觉得项目的难度不 小,如果项目的所有功能都实现,客户给的项目经费应该说是相差甚远,但是对于个人来讲,也是一个小小的诱惑。
    我想很多的朋友都希望能够创业,不少人已经或则正准备创业,毕竟对于大多数人来说,是成不了皇帝打工仔,工字本就不出头,所以都希望有朝一日能够自己当家 做主。但是我们要问一句:"你准备好了吗?"如果说要做老板可能一点都不难,但是如何把事业做起来,不要让自己的那些辛苦钱打了水漂,只是自己过了一把老 板瘾,这些并不容易,因为你要考虑的事情太多了,不会像作打工仔时候那么轻松。
我也给我那老朋友浇了许多冷水,我问题了接个问题:
    1)项目是怎么拉来的
    2)项目经费多少
    3)项目现在有多少人,是什么样的人
    4)如果客户的款没有到位,你能够坚持多久
    5) 这个项目做完之后,后续的该怎么做
    朋友的这个项目是针对政府部门的一个管理系统,因为属于比较特殊的部门,目前在市场上他认为还属于一个空洞期,所以他分析说应该有不错的市场,但是我倒不 看好,因为希望和政府部门做系统,需要有一定的资历和背景才比较容易,这些对于我们来说都是缺乏。而且产品本身我也不太看好,市场上已经有类似的产品,因 为部门比较特殊,虽然是有市场,但是要打开这部分市场的代价也不小。
    对于很多创业者来说,能够找到好的项目可以说是一个良好的起点,但是不代表他就能够成功,毕竟他只找到了一个方向,方向虽然对了,但是离成功还很遥远。我 没有过多评价朋友这个项目今后的市场有多少,毕竟未来的事情是无法预知的,我更不可能知道这个方向对或则不对,只有尝试过了才知道。更何况朋友一腔热血, 单纯就凭那股子热情就值得我佩服,所以即便我自己不看好,也没有去阻止他的创业热情。
    我一再追问一件事情,你能够坚持多久?因为对于对于的项目的今后朋友都有自己的想法,我主要想知道他是否能够坚持到最后,因为从他目前情况来看,一旦他决 定要开始创业,将开始一场持久艰苦的奋斗时期,先不考虑项目的后期有多么好的前景,能够坚持过这段时间才能再谈后面的发展。但是就是这个坚持时期,让多少 创业的朋友中途放弃,如果打算创业的朋友,一定要估算好自己能够坚持的时间,把问题都计算倒最坏,然后估计一下自己能够在这种最坏的情况下能够坚持多久。
    对于希望创业的朋友,先不要去找项目或则其它的,先自己回顾一下自己的过去,看看自己能够再这条路上坚持多久,其实最后能够成功的人往往都不是起跑跑的早或则跑得快的人,而是看谁能够坚持到最后。

————END————
编后:我不知道小余身上发生了什么,这其中有些观点也是我想和朋友说的。不过他的沉淀时间也算是过长的了。话说太多就成了罗嗦了,因此,我也想问问他:你能坚持多久。

[由于小余写了不少类似的文章,因此决定逐步转载,如果小余对我有意见,我决定停止转载]

 

Tags: 创业, 思考, 沉淀

强势的老板--项目管理

感谢小余给我们带来的文章。本想根据其中的内容想润色一下,但仔细思考后还是放弃了。每个人的思想和观念都有其独到之处,如果我强行改变,那就是改变原作者的思路了。

原文网址:http://www.cnblogs.com/yice/archive/2008/08/08/1264044.html

内容开始


    有个人在交际场合中一言不发,哲学家狄奥佛拉斯塔对他说:“如果你是一个傻瓜,那你的表现是最聪明的;如果你是一个聪明人,那你的表现便是最愚蠢的了。”

    我有个朋友自从前年年末开始召集人马进行一个产品的开发,从零开始做这个产品,历时一年多的努力,据说产品在内部也改了5,6个版本。我看过他们的东西, 总体给我的感觉算是不错。从开发到现在也过来一年多的时间,产品也有了初步的 成型系统,而且比较稳定,按照市场运作的模式,应该进入大力推广的阶段。作为开发内部来说,应该进入一个比较平稳的维护和升级阶段,但是从我和朋友聊过之 后,还有与准备离职的开发人员交流之后,发现其中还有不少故事值得说出来给大伙听听。由于我对整个项目的实际进展了解并不多,只是从侧面去观察,所以文章 所简述的观点都是基于个人的看法。在此我还需要强调一点,些这篇文章不是为了批评PM的对与错,只是希望通过我这位朋友身上发生过的事情,折射出一点道路 来,取其精华,也要避免走他曾经走过的弯路。

   在项目中需要被提及的任务有三个,资深的开发人员SD(senior developer),项目经理PM(Project Manager),技术型老板TB(Technology Boss).这三个人中我接触比较多的是PM,他也就是我朋友,以前共事的同事,对于他的性格 和做事方法和能力比较了解。SD,我以前的同事,虽然接触不太多,但是对于他的技术和做事态度还是了解。TB呢?说实话,没有见过这个人,只是听其他的人 介绍和从事情中来判断他。

   PM是从零开始负责这个产品的开发,从招聘人员,产品的分析,设计都是具体参与在这个项目之中。但是从项目的开发到现在,应该说与他的努力是分不开的。但是本文的主要也是针对于他来写的,因为他是协调TB与SD之间的桥梁,应该说他需要对整个项目进行总体控制。

    由于整个公司属于创业型的公司,虽然有另外一家实体企业提供开发资金,但是很多事情还是需要从头开始做,在一开始的时候,PM既要当项目经理,也要当大内 总管,一手抓项目开发,还要一手抓厕所是否有卫生纸等等。这些琐琐碎碎的事情应该说早就超出了一个正规PM的职责范围。但是创业初期,就要求人员要身兼多 职。我想要不是我朋友的好性格和脾气,别人很难能坚持下来。

    没有PM的好性格,项目不会有今天的结果,但是也是因为他的好性格,才会使项目出现了比较严重的问题,真可谓成也萧何,败也萧何。如果真正从软件开发项目 经理这个角色来看我这位朋友,我觉得他做的并不到位。我们从项目开发的一些事情来看待这些问题,和欢迎大家讨论一下如果是你换到他的位置,你该怎么处理。

    5月的时候,PM从北京回西安来招聘人员(公司原本在西安,今年初的时候搬迁到北京),我帮忙一起面试人员。在招聘过程中他感慨到:“现在招聘不到好的美 工?”听完这句话我觉得非常差异,就听他继续说道:“我希望招聘一个美工,能最快的出图,把老板的项目转变成实际,现在开发中美工的速度跟不上开发的速 度。”

    细细品味他的这两句话,我就感觉到他项目有问题,我当时疑惑的问他道:“我觉得很奇怪,美工的速度怎么会跟不上开发的速度?”因为做Web开发的人来说, 一般情况下,UI的开发和程序的开发是前后进行,有了UI之后,开发人员再进行项目的开发,虽然有时候会受一点点影响,但不至于影响道整个开发进度。后来 继续交流过程中才知道,原来美工出图慢的主要原因是老板变化太快,以至于如果老板一个Idea之后,隔天美工出效果,开发人员进行开发,等开之后老板会认 为和他想的存在有差异,需要在次修改,就是这样的循环过程中就出现了“美工缺乏的感慨”。

    从与SP的交流中,听到他感慨道,开发中变的太快了,因为TB原先也是做软件出身的,但是由于不是做当前的这个类型的开发,所以对某些问题有时候一知半解 的,而且TB是个追求完美的人,其实由于这套产品对图形的质量的要求非常高,因为图形经过处理后需要打印出来,所以我倒可以理解TB对这方面的完美追求。 但是问题不是处在TB的完美上,而是对于TB的个人强势上面,SP说过,在沟通中TB时时常会抛出这句话:“除了问题你负责啊!”。现在SP也决定从这里 离开,我略微了解了一下,由于各种问题的存在,核心的开发人员都有离开的念头,至少作为PM口中赞不绝口的SP已经离开了。

    从事中去分析一下,整个项目开发中可能有不少问题,但是就项目开发的进度把控这块,PM就做的不够到位,至少他没有守住项目的需求变化,老板一个想法,整 个项目进度都会受到影响,而且这些想法有时候时一瞬间的灵感。PM在项目开发过程中,对于如此频繁的需求变化,需要对需求进行汇总,每一个版本的开发尽量 都按照原定的时间安排进行,对于不同的需求变化,在汇总分析之后,阶段性的追加到项目中,以此来降低需求变化的次数已经明确需求的具体内容。对于老板的 Idea倒可以专门安排人员对应他,做原型图后讨论可行性,不要让老板直接接触到开发具体的过程,特别是跨过PM来安排开发人员进行开发工作。

    对于TB的强势没有抗住,如果TB的要求合理,也要尽量避免打乱现在的开发计划,维持开发团队的进度稳定。如果TB的要求是天方夜谭,那就要顶住说:"除 了问题我负责。”对于PM来说,在实际过程中需要良好的沟通技巧,不能单纯对上或只向下,PM除了具备有项目过程中的良好项目风险管理和进度预估,掌控能 力外。另外一个角色就是扮演缓冲剂,调节各方面的沟通与交流。千万不要到了项目失败后,自己感慨说我没有功劳还有苦劳,这种阿Q自慰的方式对于希望成为 PM来人来说就是表示你的失败。就像文章开始的那则笑话中所说的那样,在相同的场合,你的角色不同,你做的事情的评定就不一样。

————END————

 

Tags: 管理, 老板, 强势, 项目

MySQL数据库5.1正式版即将发布

Sun日前已经确认最新版的 MySQL 5.1的所有重大漏洞已经被修复,一切都准备就绪,翘首以盼的开源用户可以期待它能够在未来的几周之内公开发布.Sun公司的数据库产品部门副主席 Zack Urlocker表示,Sun的开发人员已经在很多方面对MySQL 5.1进行了反复检查和测试,确保公开发行的正式版毫无问题.

   Sun的官员早在四月份的MySQL大会上就曾经放出消息说,这个新版的MySQL数据库会在会议结束的几周之内与大家见面.不过,为了找出 MySQL 5.1的重大漏洞并将其修复所花费的时间远远超出了Sun的预算,所以MySQL 5.1正式版的公开发布时间不得不一拖再拖.

市场调查机构451集团的分析师Matt Aslett表示,数周前MySQL的创始人Monty Widenius邀请MySQL的开发人员帮助公司决定是否该公开发布MySQL 5.1.很显然,该公司对之前5.0的公开发布以及5.1候选版发布时因为不够审慎所犯下的错误仍然心有余悸,以至于现在很担心会不会第三次犯错. MySQL认为有必要公开咨询发布事宜的事实表明,公司对于漏洞报告过程信心不足,不然就是过于谨慎了.

Urlocker称,Sun承诺,在给该产品贴上公开发行的标签并正式推荐客户将其用在生产环境前,必须确保产品是真的没有问题可以投放市场才行.这也是 Sun为什么在产品发布候选版(RC)阶段找人来帮忙的原因.同时,Urlocker也表示,在开发人员的努力下,目前已经把客户曾经上报没有修复的优先 级为一和二的已知漏洞都修复了.

Forrester市场调查机构的分析师Noel Yuhanna则认为,如果MySQL要扩展其现有功能,以便为高性能的企业级环境提供支持,那么在这条提升的道路上必定会遇到困难,而Sun的延迟发布 就是最有力的证明.MySQL 5.1的研发大概耗时了三年时间,Sun对MySQL的项目一直都雄心勃勃,为此增加了大量企业级功能,以改善性能,例如基于行的复制等特性.这个功能可 以在主服务器和从服务器之间复制数据的变化,而不是实际的SQL语句.为了提高灵活性,MySQL团队还添加了混合复制功能,可以根据单个的SQL操作来 选择使用语句复制或行复制.其他的增强功能还包括支持五种不同的数据分区形式——hash分区、list分区、key分区、range分区和sub- partitioning分区,据称这项功能可以帮助客户处理超大型的数据集.考虑到这些功能都非常复杂,确实需要在研发和测试过程中投入相当大的力度, 特别是如果想让这款软件能够支持大型复杂的生产环境的话.

News from cnbeta.com

Tags: database, mysql, release