博文

果然视图的效率永远是跟不上表的啊

工作上的原因开始接触Oracle了...虽然Oracle在几年前就玩过了,但是基本上都是最基本得操作了,简单的存储过程,简单的触发器..... 现在到了新的公司,碰到了诡异的问题是一个针对地区的统计问题. 一个省下面有许多的市,需要统计这些市出现的次数,以及外省的数字. 本来这个是一个非常容易搞定的问题,但是现在却碰到了麻烦,那就是这个地址字段里面存放的并不是地区的代码而是地区的文本....orz 于是现在如果想要统计这种要么通过不断的LIKE来做Count(ID),然后UNION ALL形成最终结果了...但是仅仅面对20万左右的数据量,这条语句的执行时间居然长达3分钟以上. 然后想了一个办法,首先将所有符合条件的数据全部用视图的方式UNION ALL起来,添加一个虚拟的地区代码字段,然后再对这个视图做Group BY操作. 可惜,就算是这样做了,也仅仅只是把时间提升到了2分钟10秒左右. 没办法,只有想办法改动表结构了...我是一直不怎么想改动这个表结构的,因为不是我设计的,而且本身设计的很糟糕... 程序也是刚刚接手,都没办法整理,所以如果变动了表结构,就一定要通过触发器来解决后续的问题了... 不过抱着尝试的心态,添加了一个字段,然后简单的用LIKE来更新这个字段. 然后再用Group By来生成报表.这时惊人的效率提升终于出现了..只用了5秒. 但是只有20万的数据量的话,用5秒似乎也显得太多了一点 ,估计是没有使用到索引... 于是添加索引,以Where语句的字段和Group By后面的字段添加联合索引.再做测试... 速度终于提升到0.15秒左右了...正常范围内了(虽然赶不上MySQL的效率了,当然,这也是必然的)... 接下来就是触发器了...以前只是写过一个自增ID字段的触发器而已,而且还是网上直接抄下来的... 不过现在这个触发器也很简单就是了...所需要实现的就是在Insert字段的时候根据既有的字段中的某一个值(所在地区)得取值来确定我添加的那个字段的取值.并且将更新了的数据插入进去就可以了. 但是不得不说,我根本就忘了触发器怎么写了....orz 不过最后还是搞定了就是了...之前忘掉了使用for each row,导致一直都报告ORA-04082错误,添加那个字段后终于搞定...

SlikSVN安装小记

之前的个人项目开发因为总是觉得项目量并不是很大,所以很大程度上无视了版本控制的存在。 毕竟就我一个人,怎么改都无所谓的。 但是在开发过程中还是出现了项目文件丢失、想要恢复到之前的版本却找不到备份等种种问题。 看来就算是一个人单干也还是需要版本控制配合啊。 于是想到了用SVN,至于为什么要选他,自然是因为PHP官方团队管理PHP的源代码也是用了SVN了…… 到SVN的官方玩站  http://subversion.apache.org/ 然后我选择了SlikSVN,因为似乎只有它提供了64bit的版本。官方网站: http://www.sliksvn.com/en/download 然后很正常的下载安装,安装过程中选择自定义安装,然后记得把Server端装上去,否则它默认就给安装一个客户端。 默不吭声的它就安装完了。可以说完全就是一个RAR打包之后也是同样的效果。自己到安装目录下找到/bin/svnadmin.exe,到CMD下运行它。 代码类似这个 c:\Program Files\SlikSvn\bin>svnadmin create D:\dev\popgo 意思就是建立一个工作区了,我的工作区在D盘下 然后该目录下就出现了一大堆生成的文件了,首先是编辑conf目录下的svnserve.conf了 里面所有的项目都是被注释掉的,消除以下行的注释 anon-access = none auth-access = write password-db = passwd authz-db = authz realm = My First Repository 这几项都没啥难度,指定用户的权限,指定Password文件的位置,指定权限指派文件的位置。 接下来编辑passwd文件,自己在后面建立一个就可以了,或者你可以用默认的那个 sally = sallyssecret 前面的代表用户名,等号后面是密码 然后编辑authz文件,[aliases]是代表用户的别名,如果需要定义的话是类似这样的 [aliases] sa=sally 不过使用别名的时候就需要用&符号放在前面了...

柴门文漫画略赏(一)

图片
很难得的,开始捧起我一直敬而远之的柴门文的漫画作品。之前一直久仰她的大名,也收集了她不少的作品,但是一直都害怕端起她的书……因为害怕纠结。 我手头拥有的包括了《东京爱情故事》、《同班同学》、《AGE 35》、《那个夏天的回忆》、《欺骗我的男人》、《无声地倾听》和《无声的音乐盒》共5本,当然了,是不完整的她的作品集,起码缺少了很有名的《爱情白皮书》。 仅就这几本而言,除了东爱有三本,AGE 35分上下卷之外,全是单行本的短篇或者短篇集。但是不得不说那一本的内容含量也是惊人的,至少比普通的漫画本子厚一倍左右。 昨晚到今天看完的是《AGE 35》、《欺骗我的男人》和《同班同学》,不得不说,看她的漫画我的进度非常的慢,原因自然是因为无比的纠结,甚至纠结到我经常要停下来休息一下,以便恢复一下我那纠结的思绪,但是也不得不说,她写人物的心理,无论是男人女人都是非常的到位的,纠结,但并不是制造种种狗血的剧情让读者们纠结,而是让读者陷入一种自己也难以取舍的难堪环境下左右为难,就算是把自己摆上那个层面上自己也难于做好,同时,她针对人物心理那种细致入微的描写非常的精妙,设计的人物的性格也没有什么大的拖沓,也不是像一般漫画里面的人物性格那般标新立异,都是非常普通的市井人物,而不得不说想写好一个性格突出的家伙很简单,要描写一个想法复杂的活人,那就很麻烦了。 《AGE 35》讲述的是四个年介35岁的男女的故事,都结婚了,男主角还和女主角有了两个孩子。但是自打剧情一开始,男主角就面临了一个大问题——他已经出轨了,而且爱上了第三者。随着剧情的发展,第三者愈来愈多的出现在了他的生活中,甚至他妻子的生活中。不得不说,这本漫画相当的现实主义,这个也和柴一贯的风格相吻合,我觉得其中最为出彩的就是她对女性嫉妒的那种细致入微的描写,那种就像是用刀子一点点削出来的雕像,非常的贴切。 柴门文《AEG,35》嫉妒 柴门文《AGE,35》 嫉妒 当然了,里面还是不乏柴门文系的传统“人生课堂”:处世之道的传授课程…… 但是怎么说呢?最后故事可以说被安排了一个更好的结局……让所有的人都能如愿以偿了吧,但是我想现实中一定没有那么好的状况吧。 不过觉得最后柴门文的话很对 整体来说,AGE 35不算是非常纠结的,虽然也有很多的旧情,也有犹豫,但是整体上的人物都是很果断...

未雨绸缪一下

鉴于是第一次尝试这种多相睡眠,所以必须要做好各方面的准备,当然了,最重要的准备就是..... 看看前人的经验了. 这里 就完整的记录了一位多相睡眠者的全部体验过程... 那么至少从他的记录中我得出的结论就是: 睡眠时间无论如何不可以超过15分钟,一旦进入了深度睡眠,就会让人很难受 可以适当的增加小睡的频率,特别是在调整期,但是睡眠时间一定不得超过15分钟,间隔不要低于1.5小时. 后期的体验很独特 饮食需要控制好,睡眠习惯的修正可能与饮食有关系,尽量的多吃水果素材少吃肉(毕竟这位成功者和达芬奇本人都是素食者) 嗯....我越来越期待第一天和第二天了,至少第一天都报告说还不错,第二天就是地狱一般的了

计划来实现一下达芬奇睡眠法

好不容易已经辞职在家家里蹲了,那么就来玩玩好久之前就想尝试的达芬奇睡眠法好了. 传说中一天只需要睡90分钟的秘技. 虽然在平时是绝对无法实现的,但是在现在反倒有可能来试试,不说别的,至少试试看了. 这套东西的秘诀说起来很简单,也就是每四小时睡15分钟了. 但是实现起来必须要极其的精准,该睡的时候绝对不可以拖延,该醒着的时候绝对不能睡觉或者打盹. 同时它所计算的睡眠时间为真正睡着的时间,也就是如果我们放宽统计,包括洗澡,脱衣服,穿衣服这类的时间,估计浪费在睡觉上这个动作上的合计时间大概在一天3小时左右.当然了,就算是这样也大大的缩短了平常八小时的睡眠时间. 那么计划是这样的 家里蹲状态,家里早晨是7~8点吃早饭,中饭一般是在11点半左右,晚饭在6点左右,那么规划一下的话睡眠时间安排大概是这样的了: 02:15 - 03:00 06:30 - 07:00 10:30 - 11:00 14:30 - 15:00 18:30 - 19:00 22:30 - 23:00 据说开始一周的适应期都是比较难熬的了,所以在这个适应期采用适度的奖励机制,也就是说把睡眠准备时间列为半小时前,越早准备好可以越早的睡觉,但是到了时间必须马上起床.洗澡的话则在更早的时间完成准备(因此2:15就开始进行准备). 好吧,我只是闲的蛋疼了.估计明天一整天我都会浑浑噩噩的了....

让Chrome真正的开始使用微软雅黑字体

因为最近发现MacType的显示效果不错,所以一直在摸索它的相关设置。 结果发现Chrome下MacType的显示效果很糟糕,原因就在于它对宋体的渲染很糟糕,只是对微软雅黑做了渲染处理。但是直接修改Chrome的设置中的字体选项,将默认字体调整为微软雅黑,这是没有用处的。Chrome只是修改了那些没有在Css中定义Font -family的字体的样式,将它们改为了微软雅黑,这明显是还不够的。 搜索发现 这里 提供了一个方案: 访问本地计算机的 %UserProfile%\AppData\Local\Google\Chrome\User Data\Default\User StyleSheets\Custom.css 然后添加: *{font-family:Arial,"Microsoft Yahei";} 但是这时候出现一个问题,那就是……Chrome依然我行我素的显示宋体 后来摸索发现,他的CSS语句写错了,因为Custom.css是默认最开始就加载的,所以会被后来的CSS文件中的定义覆盖掉,故而没有实际作用。真正的方法是加入以下语句: *{font-family:Arial,"Microsoft Yahei" !important;} 这样就可以了。

Debian下的SSH+Nginx+MySQL+PHP+FTP安装

虚拟机装上Debian.然后第一件事就是开始启动SSH 方法也很简单了,直接 apt-get install openssh-server 于是默认就帮你配置好了 然后,让我们关掉那个每次让自己卡到半死的DNS反查功能吧. vim /etc/ssh/ssh_config 在末尾行加入 UseDNS no 然后重启SSH 网上很多说重启可以用 /etc/init.d/ssh restart 但是我运行这个命令似乎没有效果...于是还是用很土鳖的办法 /usr/sbin/sshd stop /usr/sbin/sshd start 虽然我在SSH上执行这个命令的,但是执行了stop命令之后我并没有丧失当前的SSH链接,而且可以正确的再次启动它,当然了,这个更改的效果也只有在第二次登录的时候可以体会到了. 结果现在就碰到了问题:安装的时候选择的语言是中文呢的,Putty连上去了之后中文的显示是乱码,于是就需要做以下设置了: 首先确认你自己所在的local是zh_CN.utf-8 方法是运行: dpkg-reconfigure locales 会出现界面让你选择,选择为zh_CN.UTF-8即可 系统会进行重新配置 然后编辑environment vim /etc/environment 添加以下一行进去: LC_CTYPE="zh_CN.UTF-8" 保存退出就可以了. 接下来是客户端的Putty的设置: 在Window-Translation中把字符集改为UTF-8 然后再把界面字体更换为宋体或者其他随便支持中文字符的字体. 再次连接界面进入就会发现已经可以显示中文了,不过伴随而来的就是....英文字体真是无比的丑恶...于是还是把它改回来成英文好了... 接下来需要修改一下Bash了,先把ls的染色功能打开好了 #cd ~ ~#vim .bashrc 修改 # export LS_OPTIONS='--color=auto'  # alias ls='ls $LS_OPTIONS' 去掉前面的# 然后自己添加一个 vi='vim' 这样就好了...(我还是更...