易栈网-膘叔

浏览模式: 标准 | 列表 | 图文
项目管理流程图

项目管理流程图

这是一个流程图,来自于禅道,http://www.zentao.net/help-read-79236.html
可以在自己的项目中做借鉴啊

在禅道项目管理软件中,核心的角色有产品经理、项目经理、研发团队和测试团队四种角色。如果您现在的团队是采用敏捷开发的话,那么可以对应到 product owner, scrum master和team(dev and tester)。这几种角色之间紧紧围绕产品的需求展开协作,取得成果。禅道核心的管理流程全图如下所示:
c816fb89576c5b8fd25ce587c22646fa
其实以前公司有流程图,但这一张图相对会比较完善一点

一周回顾

一周回顾

又到了一周回顾的时候了。本周确实没有做过多的事情。自己给自己加加压了
1、看了一下postgreSQL。准备用作mysql的补充。其实也考虑过用其它数据库做补充,比如mangoDB之类的。由于目前已经采用了redis。所以对于mongoDB的需求就不是那么明显了。
不过redis和mongoDB还是有区别的。但只有一台机器的话。redis分配了不少内存的情况下,再用mongo,内存就吃紧了

2、本周针对系统中原来的缓存功能做了清理,发现了一系列的问题,调整了一下。这确实是由于以前的功能单一而造成的原因

3、对于数据抓取,先作分词再做匹配。当匹配次数小于总次数的1/4时,认为原文是不匹配的。这个功能对于采用readability功能的抓取还是相对有点效果的

4、对于宽度固定的图片,原来在做PHP缩图的时候,保持宽高比的情况,现在做了调整,基于宽度进行调整(当然,这仅能用在宽度是指定的情况下。不是适合所有情况。当然对于图片过小的情况,也先作了放大处理。避免出现小图片)

5、nginx的php-fpm超时时间过短,导致上传大文件就会有问题,比如视频这一块的上传,就好纠结啊。尝试用cgi的方式上传,还没有折腾。

6、下周准备对于现有系统的API进行调整,业务增长的同事,原有架构需求也发生变化了。毕竟在最初写程序的时候不可能会考虑到所有会发生的情况,但事实上,这些业务正在逐步变化,没辙的情况下,只能做调整。否则,以后会更痛苦

咦,好高级的提示啊

在搜索共产党宣言的时候,突然发现搜索界面有变化了。

居然这样提示了。果然是做到了人性化了。

咦,这样也知道 ?



儿童的正常视力是多少?

儿童的正常视力是多少?

视力这玩意,小朋友关心,我也关心。所以,上次学校检查之后,只有0.6所以很紧张。后来找了这个资料,发现应该这样,大致可以这样理解,小朋友的年龄*0.2即可。5岁开始就是1.0了。
找了一个参考 :
人们都知道成人的正常视力是1.5—2.0,那么,儿童的正常视力应该是多少呢? 刚生下来的婴儿,视力较弱,其眼轴较短,均为远视眼,以后眼球逐渐发育,视力也逐渐增加.

孩子在8岁以前眼球发育旺盛,8岁后减慢,直至25岁左右开始定型。
在常态下,孩子1岁时的视力为0.2,以后每长1岁,视力约增长0.2.孩子5岁时的视力应为1,0以上,8岁后应为2.0左右,14岁后的饱和视力可能达到3.0左右。1.0仅为正常视力的最低标准,1.5也不是最好的视力.
因此,如果10岁以上的孩子其视力仅为1.0的话,就应着手寻找防治视力下降的措施了。因为在这个年龄阶段应超过1.0才属正常,否则,到14岁以后有可能还要减弱,甚至成为极度近视.

建议:
把年龄数乘以0.2之积作为学龄前孩子的视力参考标准。由于此参考标准是按年龄和眼球发育状况为依据的,因而也是科学的、合理的,也可以说是人人皆宜的。
凡视力低于年龄数乘以0.2之积的学龄前孩子都在防治之列。这样把防治的起点提高了,打出了提前量,防治的回旋余地就大了,难度就降低了。因为这时的眼球结构未有病变,屈光度尚属正常,做到了未病先防、无病早防,因而可以把近视消灭在萌芽之前。

相关链接:

孩子的视力发展阶梯

1~3岁

  眼及视力发育

  1~3岁孩子的视力发育标准约能达到0.1~0.6之间。一般2岁时为0.4,已经可以判别事物的远近,且视线跟得上快速移动的东西,并看得清楚。3 岁时为0.6,视觉较为敏锐,喜欢观察,会借由眼睛来引导手去接触新事物,眼手协调更灵活,立体视觉的建立已接近完成。

 从1岁开始,孩子特别喜欢藉由眼睛导引手部活动,他们喜欢接触新事物,眼手间的协调能力也因此快速成长,视觉辨识能力在这一阶段也大大提高了。

保健重点:

谨防眼外伤

孩子逐渐长大,活动范围越来越大,还学会了奔跑,眼外伤的可能也增大。这时应加强对孩子的安全教育,如不要拿着铅笔、筷子等尖物猛跑;家里人在使用洗涤 剂时,要让孩子避开,以免液体溅到孩子眼中,造成化学烧伤;如果眼内进了灰尘等异物,不要用不干净的手帕去擦,以免造成眼球表面的划伤和继发感染。

4~6岁

眼及视力发育

4~6岁的孩子视力已逐渐成熟,视力的清晰度增加,6岁时能达到1.0,基本达到成人的水准。

这一阶段若孩子视力异常,有明显的征兆。喜欢近距离看电视,喜欢眯眼或歪头看东西,喜欢揉眼睛,或对视觉活动特别不感兴趣,这些都应该引起重视。这时近 视问题也已经浮现, 当孩子出现近距离看电视或看书,常抱怨看不清楚,很容易撞倒东西时,可能都是出现近视的重要征兆,需要及时接受检查与持续进行各种矫正治疗。

保健重点:

不要长时间用眼

●不要用眼过度:此时孩子的眼睛还处于不完善、不稳定的阶段,长时间、近距离地用眼,会导致孩子的视力下降和近视眼的发生。因此特别要注意限制孩子的近 距离作业时间,一般每次不应超过30分钟。可以经常带孩子向远处眺望,引导孩子努力辨认远处的一个目标,这样有利于眼部肌肉的放松,预防近视眼的发生。

●监测视力发育状况:此时应开始对孩子的视力进行监测,特别是要分别查两眼的视力,以便发现单眼的视力异常。因为视力不好的一只眼睛常常失去使用机会而 发展成为弱视,弱视可由屈光不正(远视、近视、散光)、斜视等引起,越早治疗,效果越好,6岁以前是最佳治疗时机。因此,最好每3~6个月做一次视力检 查,有条件的还可以在这一阶段进行1次散瞳验光。

噪音损害视力

●科学研究发现,噪音不仅会严重影响听觉器官,而 且还会通过神经系统的作用而"波及"视觉器官,使人的视力减弱。研究指出,噪音能使人眼对光亮度的敏感性降低,还能使视力清晰度的稳定性下降,比如噪音在 70分贝时,视力清晰度恢复到稳定状态时需要20分钟,而噪音在85分贝时,至少需要一个多小时。再者,噪音还可使色觉、色视野发生异常;另外,噪音可使 眼睛对运动物体的对称性平衡反应失灵。

●缺乏营养素也会造成眼疾

1、维生素

维生素A对眼睛 的新陈代谢起着非常重要的作用,它有助于维持上皮细胞的正常结构及生理功能。维生素A缺乏症是引起眼干燥症的重要因素,它还可以引起结膜色素沉着,造成慢 性结膜炎、角膜炎、麦粒肿等;此外,维生素A缺乏还会导致视网膜视紫红质缺乏,表现出眼睛对暗的适应能力减退。

缺乏维生素B1在眼部表现为看东西模糊,眼睛干燥等,严重的会引起视神经炎。

缺乏维生素B2在眼部表现为视力减退,怕光,眼部灼烧感或异物感。

维生素C缺乏能使血管壁渗透性增加,从而造成出血倾向。维生素C缺乏会引起眼部的血管、组织出血,还可能引起视神经炎和视网膜炎,

2、微量元素

微量元素锌、铜、铁、镁、硒等与眼组织的关系很密切。

锌在维持正常的视功能中起着相当重要的作用,眼组织中锌的含量在整个人体中的比例最高。缺锌可能导致夜盲,还可能引起视神经疾患及视神经萎缩。

缺铜的小孩经常出现视觉反应迟钝,瞬目反射呆滞,白内障,视功能障碍等症状。

●缺硒会致使晶体代谢障碍,发生白内障及近视性改变。

开灯睡觉

会影响孩子视力

医学研究表明,婴儿睡眠时不关灯会增加孩子患近视眼的可能性。

●国外医学研究人员在对4余名2~16岁的近视患者进行研究后发现,睡在灯光下的两岁以下的婴儿与睡在黑暗中的婴儿相比,近视发病率要高出四倍。睡在黑 暗中的孩子患近视的只占10%;夜间睡在照明灯光下的患近视的占34%,睡在室内较强光照明灯下的孩子,患近视的占55%。有关专家指出:婴儿在出生后头 两年,是眼睛和焦距调节功能发育的关键阶段,光明与黑暗的时间多少,可能会影响幼儿视力的发育,希望家长应该慎重对待.

我国儿童不同年龄段正常视力为,
2岁:0.4—0.5,
3岁:0.5—0.6,
4岁:0.7—0.8,
5岁:0.8—1.0,
6岁:1.0或以上。

http://blog.ci123.com/lyyzhmq/entry/299114

Mysql 和 Postgresql 对比

Mysql 和 Postgresql 对比

vampire告诉我服务器上安装好了postgreSQL,他也一直在推荐这个玩意,所以了解了一下。
比如这篇文章:

Mysql 使用太广泛了,以至于我不得不将一些应用从mysql 迁移到postgresql, 很多开源软件都是以Mysql 作为数据库标准,并且以Mysql 作为抽象基础的,但是具体使用过程中,发现Mysql 有很多问题,所以都迁移到postgresql上了,转一个Mysql 和Postgresql 对比的文章:

PostgreSQL由于是类似Oracle的多进程框架,所以能支持高并发的应用场景,这点与Oracle数据库很像,所以把Oracle DBA转到PostgreSQL数据库
上是比较容易的,毕竟PostgreSQL数据库与Oracle数据库很相似。
同时,PostgreSQL数据库的源代码要比MySQL数据库的源代码更容易读懂,如果团队的C语言能力比较强的知,就能在PostgreSQL数据库上做开发,比方说实现类似greenplum的系统,这样也能与现在的分布式趋势接轨。

为了说明PostgreSQL的功能,我下面简要对比一下PostgreSQL数据库与MySQL数据库之间的差异:
我们先借助Jametong翻译的"从Oracle迁移到Mysql之前必须知道的50件事",看一看如何把Oracle转到MySQL中的困难:
50 things to know before migrating Oracle to MySQL
by Baron Schwartz,Translated by Jametong
1. 对子查询的优化表现不佳.
2. 对复杂查询的处理较弱
3. 查询优化器不够成熟
4. 性能优化工具与度量信息不足
5. 审计功能相对较弱
6. 安全功能不成熟,甚至可以说很粗糙.没有用户组与角色的概念,没有回收权限的功能(仅仅可以授予权限).当一个用户从不同的主机/网络以同样地用户名/密码登录之后,可能被当作完全不同的用户来处理.没有类似于Oracle的内置的加密功能.
7. 身份验证功能是完全内置的.不支持LDAP,Active Directory以及其它类似的外部身份验证功能.
8. Mysql Cluster可能与你的想象有较大差异.
9. 存储过程与触发器的功能有限.
10. 垂直扩展性较弱.
11. 不支持MPP(大规模并行处理).
12. 支持SMP(对称多处理器),但是如果每个处理器超过4或8个核(core)时,Mysql的扩展性表现较差.
13. 对于时间、日期、间隔等时间类型没有秒以下级别的存储类型.
14. 可用来编写存储过程、触发器、计划事件以及存储函数的语言功能较弱.
15. 没有基于回滚(roll-back)的恢复功能,只有前滚(roll-forward)的恢复功能.
16. 不支持快照功能.
17. 不支持数据库链(database link).有一种叫做Federated的存储引擎可以作为一个中转将查询语句传递到远程服务器的一个表上,不过,它功能很粗糙并且漏洞很多.
18. 数据完整性检查非常薄弱,即使是基本的完整性约束,也往往不能执行。
19. 优化查询语句执行计划的优化器提示非常少.
20. 只有一种表连接类型:嵌套循环连接(nested-loop),不支持排序-合并连接(sort-merge join)与散列连接(hash join).
21. 大部分查询只能使用表上的单一索引;在某些情况下,会存在使用多个索引的查询,但是查询优化器通常会低估其成本,它们常常比表扫描还要慢.
22. 不支持位图索引(bitmap index).每种存储引擎都支持不同类型的索引.大部分存储引擎都支持B-Tree索引.
23. 管理工具较少,功能也不够成熟.
24. 没有成熟能够令人满意的IDE工具与调试程序.可能不得不在文本编辑器中编写存储过程,并且通过往表(调试日志表)中插入记录的方式来做调试.
25. 每个表都可以使用一种不同的存储引擎.
26. 每个存储引擎在行为表现、特性以及功能上都可能有很大差异.
27. 大部分存储引擎都不支持外键.
28. 默认的存储引擎(MyISAM)不支持事务,并且很容易损坏.
29. 最先进最流行的存储引擎InnoDB由Oracle拥有.
30. 有些执行计划只支持特定的存储引擎.特定类型的Count查询,在这种存储引擎中执行很快,在另外一种存储引擎中可能会很慢.
31. 执行计划并不是全局共享的,,仅仅在连接内部是共享的.
32. 全文搜索功能有限, 只适用于非事务性存储引擎. Ditto用于地理信息系统/空间类型和查询.
33. 没有资源控制.一个完全未经授权的用户可以毫不费力地耗尽服务器的所有内存并使其崩溃,或者可以耗尽所有CPU资源.
34. 没有集成商业智能(business intelligence), OLAP **数据集等软件包.
35. 没有与Grid Control类似的工具( http://solutions.mysql.com/go.php?id=1296&t=s )
36. 没有类似于RAC的功能.如果你问”如何使用Mysql来构造RAC”,只能说你问错了问题.
37. 不支持用户自定义类型或域(domain).
38. 每个查询支持的连接的数量最大为61.
39. MySQL支持的SQL语法(ANSI SQL标准)的很小一部分.不支持递归查询、通用表表达式(Oracle的with 语句)或者窗口函数(分析函数).支持部分类似于Merge或者类似特性的SQL语法扩展,不过相对于Oracle来讲功能非常简单.
40. 不支持功能列(基于计算或者表达式的列,Oracle11g 开始支持计算列,以及早期版本就支持虚列(rownum,rowid)).
41. 不支持函数索引,只能在创建基于具体列的索引.
42. 不支持物化视图.
43. 不同的存储引擎之间,统计信息差别很大,并且所有的存储引擎支持的统计信息都只支持简单的基数(cardinality)与一定范围内的记录数(rows-in-a-range). 换句话说,数据分布统计信息是有限的.更新统计信息的机制也不多.
44. 没有内置的负载均衡与故障切换机制.
45. 复制(Replication)功能是异步的,并且有很大的局限性.例如,它是单线程的(single-threaded),因此一个处理能力更强的Slave的恢复速度也很难跟上处理能力相对较慢的Master.
46. Cluster并不如想象的那么完美.或许我已经提过这一点,但是这一点值得再说一遍.
47. 数据字典(INFORMATION_SCHEMA)功能很有限,并且访问速度很慢(在繁忙的系统上还很容易发生崩溃).
48. 不支持在线的Alter Table操作.
49. 不支持Sequence.
50. 类似于ALTER TABLE或CREATE TABLE一类的操作都是非事务性的.它们会提交未提交的事务,并且不能回滚也不能做灾难恢复.Schame被保存在文件系统上,这一点与它使用的存储引擎无关.

PostgreSQL数据库可以解决以上问题中的:
1. 对子查询的优化表现不佳
2. 对复杂查询的处理较弱
3. 查询优化器不够成熟
PostgreSQL完全支持SQL-92标准,对SQL的支持也很全面,可以支持复杂的SQL查询。

4. 性能优化工具与度量信息不足
PostgreSQL提供了执行计划和详细的cost值,可以方便看到SQL的执行效率。

9. 存储过程与触发器的功能有限.
PostgreSQL提供了完善的存储过程和触发器支持。

11. 不支持MPP(大规模并行处理)
而PostgreSQL是类似Oracle数据库的架构,是多进程的架构,而不像MySQL是多线程的架构,所以能支持MPP。

18. 数据完整性检查非常薄弱,即使是基本的完整性约束,也往往不能执行。
PostgreSQL提供完善的数据完整性检查机制,支持外键。

20. 只有一种表连接类型:嵌套循环连接(nested-loop),不支持排序-合并连接(sort-merge join)与散列连接(hash join).
而PostgreSQL则支持这些表连接类型

21. 大部分查询只能使用表上的单一索引;在某些情况下,会存在使用多个索引的查询,但是查询优化器通常会低估其成本,它们常常比表扫描还要慢.
PostgreSQL 数据不存在这个问题,假设表T的两个字段col1的col2上有两个索引,idx_1和idx_2,那么select * from t where col1=:a and col2=:b;查询时,PostgreSQL数据库有可能把这个查询转化为select * from t where col1=:a intersect select * from t where col2=:b,这样两个索引都可以使用上。

25. 每个表都可以使用一种不同的存储引擎.
26. 每个存储引擎在行为表现、特性以及功能上都可能有很大差异.
27. 大部分存储引擎都不支持外键.
28. 默认的存储引擎(MyISAM)不支持事务,并且很容易损坏.
29. 最先进最流行的存储引擎InnoDB由Oracle拥有.
30. 有些执行计划只支持特定的存储引擎.特定类型的Count查询,在这种存储引擎中执行很快,在另外一种存储引擎中可能会很慢.
PostgreSQL只有一种存储引擎,所以不存在上面的情况。而PostgreSQL支持完善的事务。

32. 全文搜索功能有限, 只适用于非事务性存储引擎. Ditto用于地理信息系统/空间类型和查询.
PostgreSQL数据库支持全文搜索,支持更多类型的索引,如B-tree,R-tree, Hash, GiST, GIN,R-tree,GIST,GIN索引可用于空间类型和查询。

37. 不支持用户自定义类型或域(domain).
PostgreSQL支持丰富的类型,同时也支持自定义类型。

39. MySQL支持的SQL语法(ANSI SQL标准)的很小一部分.不支持递归查询、通用表表达式(Oracle的with 语句)或者窗口函数(分析函数).支持部分类似于Merge或者类似特性的SQL语法扩展,不过相对于Oracle来讲功能非常简单.
这些PostgreSQL数据库都支持,如窗口函数。

41. 不支持函数索引,只能在创建基于具体列的索引.
PostgreSQL支持函数索引

49. 不支持Sequence.
PostgreSQL支持sequence

50. 类似于ALTER TABLE或CREATE TABLE一类的操作都是非事务性的.它们会提交未提交的事务,并且不能回滚也不能做灾难恢复.Schame被保存在文
件系统上,这一点与它使用的存储引擎无关.
PostgreSQL不存在这个问题。


---EOF--

下面有人回复 说是innodb其实性能很高,不过很少有人懂得配置好而已

http://www.oschina.net/question/96003_13994
怎么样修复SVN中的 “containing working copy admin area is missing”

怎么样修复SVN中的 “containing working copy admin area is missing”

How to fix “containing working copy admin area is missing” in SVN?
有的时候,SVN中刚刚创建了一个目录 ,结果没有在svn中删除 ,而是直接到资源管理器或者finder中删除 了。这时SVN会报错。说是你建了一个目录,删除 了,错误信息就是: “containing working copy admin area is missing”
怎么修复呢?
最方便的方法就是checkout原来项目的这个路径的目录。覆盖掉当前目录。

世界就清静了

Yii : using multiple radio button

Yii : using multiple radio button

Yii在使用CHtmlRadio的时候,如果参数不正确,会隐藏一个form,导致如果radio的值有3个时,永远只能提交第一个和最后一个
太纠结了。仔细看看,确实 是有一个隐藏FORM,导致本来应该是3个radio的button,变成了6个。

找了一下资料,看了一下源码,果然。。。。有一个hidden。

/**
* Generates a radio button for a model attribute.
* If the attribute has input error, the input field's CSS class will
* be appended with {@link errorCss}.
* @param CModel $model the data model
* @param string $attribute the attribute
* @param array $htmlOptions additional HTML attributes. Besides normal HTML attributes, a few special
* attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
* A special option named 'uncheckValue' is available that can be used to specify
* the value returned when the radio button is not checked. By default, this value is '0'.
* Internally, a hidden field is rendered so that when the radio button is not checked,
* we can still obtain the posted uncheck value.
* If 'uncheckValue' is set as NULL, the hidden field will not be rendered.
* @return string the generated radio button
* @see clientChange
* @see activeInputField
*/
public static function activeRadioButton($model,$attribute,$htmlOptions=array())
{
self::resolveNameID($model,$attribute,$htmlOptions);
if(!isset($htmlOptions['value']))
$htmlOptions['value']=1;
if(!isset($htmlOptions['checked']) && self::resolveValue($model,$attribute)==$htmlOptions['value'])
$htmlOptions['checked']='checked';
self::clientChange('click',$htmlOptions);

if(array_key_exists('uncheckValue',$htmlOptions))
{
$uncheck=$htmlOptions['uncheckValue'];
unset($htmlOptions['uncheckValue']);
}
else
$uncheck='0';

$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
$hidden=$uncheck!==null ? self::hiddenField($htmlOptions['name'],$uncheck,$hiddenOptions) : '';

// add a hidden field so that if the radio button is not selected, it still submits a value
return $hidden . self::activeInputField('radio',$model,$attribute,$htmlOptions);
}


太纠结了。居然用unCheckValue设置一下才OK:

echo CHtml::radioButton('btn', false, array(
'value'=>'1',
'name'=>'btnname',
'uncheckValue'=>null
));
CHtml::radioButton('btn', false, array(
'value'=>'2',
'name'=>'btnname',
'uncheckValue'=>null
));

//如果是activeForm,就得这么用
echo $form->radioButton($model, 'name', array(
'value'=>1,
'uncheckValue'=>null
));
echo $form->radioButton($model, 'name', array(
'value'=>2,
'uncheckValue'=>null
));

果然纠结。。。NND

转:遗憾最小化框架:杰夫·贝佐斯离职创立Amazon背后的思考办法

转:遗憾最小化框架:杰夫·贝佐斯离职创立Amazon背后的思考办法

看了这篇文章后,对其中的一句话特别感兴趣,原文中有一条下划线,但那不是我有兴趣的。我的兴趣我加红。

我对老板说:“老板,我想做件疯狂的事情,我打算开家公司,在网上卖书。”之前我和他泛泛聊到过这个想法。“走,陪我散散步去。”他对我说。于是, 和他在纽约中央公园逛了两个小时后,他最后对我说:“你这个打算听起来是很靠谱,但这个事情更适合那些眼前没有一份好工作的人去做。” 他的话让我苦思良久。

为了能做好这种重大的决定,我努力寻找正确的思考框架。我也和妻子讨论过这个念头,她对此非常支持:“不论你做什么, 我都百分百支持你。”她嫁给了我这么一个有着稳定职业道路的稳重的家伙,而我现在想去做的事情是如此疯狂,但她却对此百分百支持——这个决定最后还是完全 在于我自己。最后,我找到了一个框架,它能助你轻松做出人生的重大决定,我把它称作“遗憾最小化框架”。

我 把自己想象成80岁的模样,并思考:“现在回望我的一生,我要把遗憾事件的数量降到最低。”我知道在我80岁时,我不会因这次尝试而后悔,我不会后悔参与 到互联网这个我认定是了不起的事情中来。我知道,哪怕我失败了,我也不会遗憾,而我可能会因为没有尝试而最终后悔不已。如果你能想象自己年满八旬,并思考 “老了的我会怎么想呢?”这个问题,你就可以因此而摆脱每日琐碎的困惑的干扰。你要知道,当时我从那家华尔街公司离职创业时恰逢年中,这样连年终分红都没 我的份了。就是这类短期的事情会干扰你的判断,只要你把眼光放得更长远些,你就可以做好生命中的重大决定,而不至于日后后悔了。

via bijansabet.com

http://www.36kr.com/category/digest

IBDATAi清除

IBDATAi清除

其实之前也遇到过样的问题,但这次是发生在虚拟机上,所以不得不再次记录一下
虚拟机磁盘空间有限,因此,当ibdata1的文件过大的时候,机器动不了了,一重启之后,mysql也无法启动了。哭
一看ibdata1居然就占用了我800多M的空间,我一共是8G的虚拟机,这怎么吃得消?于是找了篇文章做参考。
ibdata1是mysql使用InnoDB引擎的时候需要使用的文件。这个文件有的时候会变得很大,并且在你删除数据的时候,文件也不减小。这意味着,即使我将数据库啥的清空了也没啥用,ibdata1大小仍然保持不变。
不得已,只能做了如下操作
1、对每张表使用单独的innoDB文件, 修改/etc/my.cnf文件
[mysqld]
innodb_file_per_table

2、 导出所有的数据,重建数据库,然后恢复数据:
# /usr/bin/mysqldump -R -q --all-databases > /temp/all.sql
# service mysql stop ,ubuntu下面可以是/etc/init.d/mysql stop
# rm -fr /var/lib/mysql/*
# /usr/bin/mysql_install_db
# service mysql restart ,同上/etc/init.d/mysql start
# mysql < /tmp/all.sql

这样导入的sql,root是没有用户名的,所以还需要再设置一下

>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;

如果这样还不行,参考这一篇:http://neatstudio.com/show-1042-1.shtml

3、 /var/lib/mysql的每个数据库下面,都有会很多的.ibd文件。这些分散的.ibd文件取代了原来的那个ibddata1。
以后删除数据库的时候,直接删除某个数据库的目录就可以了

-------EOF-------
以上的参考来自于:http://bbs.chinaunix.net/thread-3646471-1-1.html
还有一段:
mysql 使用的引擎:
mysql> show engines;
+------------+---------+----------------------------------------------------------------+
| Engine | Support | Comment |
+------------+---------+----------------------------------------------------------------+
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables |
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys |
| BerkeleyDB | YES | Supports transactions and page-level locking |
| BLACKHOLE | NO | /dev/null storage engine (anything you write to it disappears) |
| EXAMPLE | NO | Example storage engine |
| ARCHIVE | NO | Archive storage engine |
| CSV | NO | CSV storage engine |
| ndbcluster | NO | Clustered, fault-tolerant, memory-based tables |
| FEDERATED | NO | Federated MySQL storage engine |
| MRG_MYISAM | YES | Collection of identical MyISAM tables |
| ISAM | NO | Obsolete storage engine |
+------------+---------+----------------------------------------------------------------+
12 rows in set (0.00 sec)
For InnoDB tables, OPTIMIZE TABLE is mapped to ALTER TABLE, which rebuilds the table to update index statistics and free unused space in the clustered index.
所以不会直接来减少ibdata的文件尺寸。
减少ibdata的方法如下

- 1. 用mysqldump等工具导出数据 - 2. 停止 mysqld
- 3. 删除ibdata*, ib_logfile* 文件
- 4. 重新启动 mysqld(这时mysqld就会自动创建 idbdata*, ib_logfile* 文件)

- 5. 将到出来的数据导回去,体积才会减小。

ZendFramework

Zend 2.0的框架改动与1比实在是太大了,当然抛开Namespace不说,即使是应用和架构,都有了一部分调整。
Zend实在太庞大了。用来开发项目不一定是首选。以前都是当成类库来用的,毕竟他实现了几乎目前所需要用到的一切功能,甚至GData之类的接口都全了,你还能奢求什么?
要赶时髦?openID和oauth也有,要实用?连pdf库都有,发邮件、本地化、命令行,应有尽有,不是类库是什么?
不过2.0就不太一样。我随便看了一个DB类,和以前的操作都有点不太一样了。或许是一下子没有适应过来那种newZend_Db_TableGateway之类的调用方式吧
手册在这里:http://packages.zendframework.com/docs/latest/manual/en
下载在这里:http://packages.zendframework.com/

还有一个相对比较实用的wiki:http://framework.zend.com/wiki/display/ZFDEV2/Home
可以看看。2.0的架构和代码还是值得学习的。