分类目录
-
近期文章
其他
我的朋友
推荐站点
经典朋友
功能
分类目录归档:技术开发
Apache的 rewrite 和 .htaccess 不起作用,还和 Options 设置有关系
要启用 rewrite 和 .htaccess 设置,除了开启 mod_rewrite.so、AllowOverride All 配置外 LoadModule rewrite_module modules/mod_rewrite.so AllowOverride All 还需要注意 Options 的设置 默认设置是:Options Indexes FollowSymLinks 如果改成以下设置后,就会出错 Options Indexes FollowSymLinks MultiViews Includes (出错) 如果要启用 目录浏览 MultiViews 服务器端包含 Includes (<!–#include virtual=”top.htm” –>) 可以考虑使用 Options All
MySQL主从服务器的一些技巧
作者:老王 问题:主从服务器表类型的选择 一般的共识是主服务器使用innodb,从服务器使用myisam,以便各尽其能。 问题:主从服务器字段类型的选择 字段类型对于分页等操作有很大影响。主服务器一般是innodb,因为不涉及查询,所以可以使用varchar等来存储字符串来节省空间,从服务器一般是 myisam,因为涉及查询,所以必须在char和varchar之间仔细权衡,没有varchar, text, blob字段的表是静态表,反之是动态表,静态表的检索效率要比动态表好若干倍,一般来说,所有涉及大结果集的查询都应该尽可能保证在静态表上完成,这里 说一个例子:比如说常见的articles表有title(varchar), body(text)等字段,在做文章列表的时候,因为不是静态表,所以查询不会很快,下面开始重构解决方案:把原来的articles表拆分成 subjects表和contents表,title字段设置为一个足够的char类型放在subjects表里,body字段还保持是text类型放到 contents表里,subjects和contents表之间的关系是一对多,这样,顺带着也方便的实现了多页文章的功能,而且更重要的是在查询文章 列表的时候,操作都是在subjects静态表里完成,效率肯定会比前一种方案提升很多。 问题:主从服务器NOW()函数造成数据不一致 假设在主服务器上执行一条INSERT …. VALUES ( …, NOW()),那么在从服务器上也会同样执行一条的SQL语句,但是一来主从服务器各自的时间设置可能就不一致,二来主从服务器间的SQL同步也可能存在 时间上的的延迟,这样,NOW()在两台服务器上的结果就可能不一致。解决方法是显而易见的,就是不要使用NOW(),时间的计算在应用程序里完成。这里 介绍一个额外的小技巧:在PHP里如果想获得当前时间的时间戳,不要用time(),而应该使用$_SERVER[‘REQUEST_TIME’] (PHP版本大于5.1有效),这样少做了一次系统调用,更有效率。 问题:主从服务器读写分离时读操作失败 先重现一下问题:比如说添加一条新数据,添加成功后根据last_insert_id跳转到新添加数据的浏览页面。在此过程中添加新数据的操作是在主服务 器上完成的,浏览新数据的操作实在从服务器上完成的,不过由于主从服务器间SQL同步存在延迟,所以当使用last_insert_id在从服务器上查询 的时候,从服务器很可能还没有还没来得及同步到此记录,所以读操作失败。解决思路也不复杂,在代码里加入一个缓存层(可以使用memcached),新添 加的数据都顺手放到缓存层里一份,新数据的读操作也先查询缓存层,这样就不会再有读操作失败的问题了,当然删除或者更新数据的时候也要顺带着处理好缓存数 据,可以使用观察者模式来搞定。不过这样缓存方案只限于读取单一的记录,对于读取列表的记录的情况,则是无效的。 问题:主从服务器索引是否有必要保持一致 一般都是利用主从服务器完成读写分离,从服务器上进行读操作,主服务器进行写操作,这样的话,主服务器上仅保留主键,外键,唯一索引等必要的索引即可,以 便保持数据合法性,而对于那些原本用于优化SELECT操作的索引,可以全部删除,如此的话主服务器的写操作效率会提升很多。 转自:http://hi.baidu.com/thinkinginlamp/blog/item/5d72dd5469b1885fd0090633.html
URL Rewrite 写在.htaccess和httpd.conf中,对php的$_SERVER变量的影响
如题所述 例,重写规则为: RewriteRule ^show/(\d+)(/?)$ show.php?id=$1 当地址栏输入 http://www.d5s.cn/show/18 的时候, 重写规则,写在.htaccess中, $_SERVER['PHP_SELF'] = /show.php?id=18 重写规则,写在httpd.conf中, $_SERVER['PHP_SELF'] = /show/18 如果有需要从 $_SERVER['PHP_SELF'] 变量中取值的时候,需要注意这两者写法的区别。
产品和技术的矛盾,大家是如何解决的?
以下是前一段时间,在UCD讨论组上面,和一些朋友进行的讨论。 现在整理出来和大家分享一下。 ——————————————————————– 无影说: 程序员总是想尽量精简或者是按照自己的程序编写方便来完成一些功能,有时候就是,为了完成功能,并没有考虑到产品设计上,未来可能会发生的变化,等到变 化来临时,又找出借口来说,这个功能会影响XXX,无法做,或者很难做,以此来刁难。 做产品的时候,总是想一开始就做一个大而全的东西,别人有的我要有,别人没有的我也要有,总是先模仿同类的其他网站,这样很难有自己的特色。 程序员做的不是自己想做的,所以他们总是消极怠工,或者是代码考虑不周全,留下了未来的一大堆隐患,或者是本来可以很快完成的任务,他说是很复杂,这个 需要做很久,以此来表达自己的不满和抱怨,反正我又没打算一直干下去。 如果是程序员自己给自己写程序,就不会这样,开发速度很快,考虑也很细致,倾尽自己所能,以表现自己的技术高超。 或许是技术团队,没有一个顶尖的leader来领导程序员? 或许是没有一个优秀的产品经理来让程序员信服? 还是有其他一些矛盾? 好像每个公司,都有一些和程序员的矛盾,这个如何能尽量避免呢? moneya说: 我想可以让部分关键程序员前期介入,参与产品需求分析和设计。这样的设计也兼顾了 很多实际的条件,更有实现的可能性。程序员的参与度高,对需求的理解也到位些,责 任感、成就感也强吧。 liyi2008说: 是有这样的问题,我们现在的做法是,产品设计阶段就让技术人员参与,然后经过多次和技术人员讨论形成最终的开发文档,技术人员根据开发文档制定开发计划,这样的好处是不会让技术人员觉得产品与我无关,没有体现我的价值,其实技术的前期参与也可以提出很多建设性的建议。 另外,对于不同类型的程序员需要不同的对待,有些程序员在产品开发过程中有非常多的建议和想法,对产品的控制欲望很强,这样的程序员需要我们投入更多的耐心,和他探讨问题,这样的程序员一旦你和他达成一致,他们的开发和合作会非常好。我个人比较喜欢和这样的程序员沟通。还有写程序员非常严格按照你的产品文档开发,对产品本身没有太多的想法,这样就需要我们把文档写的尽量详细,因为如果有考虑不周全的地方,他们也会按文档开发。 总之,遇到这样的问题还是多找自身的问题,充分调动大家的积极性把产品做好才算一个合格的产品经理 张锐说: 同意。做好一个产品不能仅仅是产品经理的事情,产品经理最重要的一个功能就是调度起跟产品有关的人的积极性,让所有人都发挥其最大的力量。所以,我觉得“控制”对产品经理来说至关重要。 设计的前期我觉得要经常和技术人员沟通,可以让一些对设计有兴趣有想法的开发人员加入进来,他们可以从技术可行性上给予帮助。不过有个问题就是,技术人员也许不懂UCD,而且他们经常是从程序的角度去思考和设计产品,这个时候就需要我们去把握和掌控产品设计。 有些程序员对产品设计可以说丝毫兴趣没有,他们只管自己的代码是否漂亮,这些程序员最怕的就是你开发过程中变更需求,这就要求我们前期需求明确,指定完善的开发文档,深入到产品的各个细节。 wangjuea说: 顶一下liyi2008,对于不同的研发,是要有不同的协调方法。 我还有一个个人的小经验,就是不仅要和研发的同学协调好,更应该先和测试的同学搞好关系。在我的工作圈子里,我了解到大多数研发对于产品消极的处理都是与测试team的考核有直接关系。 所以,我平时会和测试、研发同学经常一起沟通,最大的目的就是期望大家在遇到问题的时候首先能一起了解问题,而不是互相推卸责任。 当然,在这个过程中PM要把握测试的纬度和实现的程度。 无影说: 产品、设计、前端工程师、程序员相互之间责任的推卸是一个很严重的问题,随着分工的越细,这种矛盾有些时候就越明显,但是不分工又没有办法达到相对的专业化。身兼多职的人,就会有所抱怨。 和产品打交道最直接的不知道是不是设计师? 产品 -> 设计师 -> 前端工程师 -> … 继续阅读
mysql 分组 排序 取时间最大的一条记录
mysql 分组 group by, 排序 取每条记录中,时间最大的一条记录 SELECT A.* FROM test A, (SELECT aid, MAX(day) max_day FROM test GROUP BY aid) B WHERE A.aid = B.aid AND A.day = B.max_day ORDER BY a.install DESC 以下是 test 表,测试sql CREATE TABLE IF NOT … 继续阅读
jquery到底对object做了什么?
还是看实际代码吧? http://www.d5s.cn/example/js/js_flash.html 正常 http://www.d5s.cn/example/js/jquery_flash.html 出错 一个使用的是 document.getElementById(‘XXX’).innerHTML = str; 另一个使用 $(“#XXX”).html(str); 结果,使用了jquery方法,会出现一些BUG在IE,其他浏览器未发现。 我之前也写过一篇文章: http://www.d5s.cn/archives/79 我以为 是使用jquery造成的,看来是jquery对object做了特殊处理,到底做了什么处理呢?我还不清楚,希望哪位js达人告诉我。