Submitted by gouki on 2010, October 23, 7:37 PM
10月16日 ThinkInLamp Mysql专场中,杨涛涛作了关于MYSQL数据库的优化,最近他在自己的博客上将PPT放了出来,我在这里做一个简单的备份,其实还有SNDA几位DBA的PPT也已经出来了,他们的在thinkinlamp.com 上已经提供下载,我就不再转载了。
我个人相对来说还是比较喜欢mysql的优化,或许对于数据库的设计 我还是停留在程序员的阶层吧。
OK,翠花,上PPT(哦,是PDF版的)
101019150312.pdf
嗯。顺便再附上一份mysql优化的PPT
mysql-introduction-and-performance-optimization.ppt
Tags: thinkinlamp, mysql, ppt
DataBase | 评论:0
| 阅读:18663
Submitted by gouki on 2010, October 22, 10:16 PM
如果你想你的网站能够被更好的访问,恐怕robots文件是相对比较好的解决方案之一,但很多人都忽略了这个玩意。
当你的网站的一些内容不想被蜘蛛访问时,但事实上他却不由自主的被蜘蛛抓取而显示在网站上,于是我们就不得不利用robots来disallow一些目录。
内容就大致如下喽:
User-agent: *
Disallow: /xxx/
如果所有的目录都不想被蜘蛛抓取,那就是
Disallow: /
除了目录外,还可以禁止一些特殊的后缀名的文件被蜘蛛抓取,比如你的网站图片是专业的有版权的,当然不希望被蜘蛛抓取,因此,你可以写成类似这样:
Disallow: .jpg$
Disallow: .jpeg$
上面写的User-agent是针对的所有的蜘蛛,如果你不想某个蜘蛛来抓你的网站,你可以单独指定某些蜘蛛disallow,而其他的为allow
一些User-agent类似如下:
百度蜘蛛名字:baiduspider
谷歌蜘蛛名字:googlebot
其他的我也说不清楚太多,不过你可以通过查看apache日志来进行查看那些蜘蛛的User-agent。
说的不是很多,希望有点帮助吧,其实我也是做点笔记。
Tags: robots
PHP | 评论:0
| 阅读:14926
Submitted by gouki on 2010, October 20, 9:27 PM
Ubuntu10的时候,如果你进行netbeans的安装(PHP版),你会发现,界面十分模糊,仿佛是英文缩小成了很小很小的一部分,但是,如果你create a project,你又发现,很多英文又显示得好好的。
怎么办?菜单英文全部不能显示正常,都是模糊的一团,如果你在win下操作熟练,你可以轻松的找到option菜单,但是即使你设置了标准 的dialog Input作为你的界面字体,菜单等仍然保持模糊状态。
查询了一下google,好象很多采用java的程序都有类似情况发生,所幸,netbeans可以通过netbeans.conf里地配置来进行处理,这时候,你可以打开/usr/local/netbeans xx.xx/conf/netbeans.conf,修改netbeans_default_options,在最后的一个选 项里加上:--laf com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel,再进行重启。OK,菜单全部出现了,而且非常秀丽。
最后诉诉苦,为了安装ubuntu,我遇到了很多问题,比如我为了备份winodws盘里的数据,先用tar把数据简单的tar了一下(没有压缩,而且打包成一个文件,方便COPY),然后。。。先是昨天用网络进行COPY,25G的文件,COPY成了80多G还没有完事。今天上午用移动硬盘先COPY,但先忘了移动硬盘是fat32的,只能最大4G,在COPY到4G的时候出错了。然后格式化成NTFS,再继续拷贝,结果到22G的时候,移动硬盘过热,突然自己就断了,心啊,哇凉哇凉的。最后突然想起linux的操作可以用scp进行COPY,而且局域网里有linux系统,于是我用scp进行COPY,果然。半小时不到就COPY完了。等系统装完再Scp回来,真的很方便。
然后遇到的问题是smbmount,把linux通过samba共享出来的目录,用smbmount到本地,但会突然发现,用户组都变成了1102之类的,而且我在root权限下,无法chown该mount回来的目录。但root用户可以更改该目录下的数据,而默认用户无法修改,打开后保存的时候会造成数据丢失。郁闷。。。
目前用下来,装B很快乐。Over
Tags: netbeans, ubuntu
Linux | 评论:1
| 阅读:21428
Submitted by gouki on 2010, October 19, 4:33 PM
今天下午在重装系统的时候,犯了一个小错误,结果,导致我的系统分区表全坏了。在UBUNTU下只能看到一个分区,里面的内容全部不见了。
所幸,UBUNTU可以光盘启动,这时候,我用它上网查了一些资料,发现原来testdisk这个软件不错,可以修复分区表的信息。
于是apt-get install testdisk,很快就下载回来了。
直接运行,会问你是否记录LOG,如果你没啥大事,就不用记录了啦,然后选择INTEL PC,再选择优化,发现了自己的系统硬盘终于被认了出来,灰常激动啊。
把分区表写入硬盘后,可以在LINUX下面发现已经挂载到/media目录下了,立刻,远程到局域网,把数据全部拷贝到局域网中。
期间,本来是想用smbmount把远程的共享目录映射过来,然后把本地内容拷贝过去,结果发现好象不行。最后没辙,只能远程,把本地磁盘映射到远程系统中,终于可以拷贝内容了。
激动啊。。。不然我就全完了
Tags: testdisk
Linux | 评论:0
| 阅读:15212
Submitted by gouki on 2010, October 18, 11:51 PM
这两天有趣的事情非常多,比如,所谓的QQ一些内部培训资料流出,网上各大网盘啥的流量一下子就非常高了。我当然也不小心就下载了一份,还没有看,不过好象什么百度的资料上已经有在线看了。因为自己也没有看,所以也不太清楚这玩意是真是假。
OK,上正文,16日的MYSQL专场,对于mysql优化讲的较详细的应该算是杨涛涛,他对MYSQL的一些字段类型进行了些介绍,包括他们所含 的字节长度,来介绍给我们让我们了解如何对数据库进行优化,比如,尽量不要用bigint,因为,这在项目中几乎不可能会被用上而他们占的字节长度却是在int中最长的,在数据量大的时候,既占空间,又影响速度。
还介绍了datetime和timstamp等的区别(更多可以看我以前写的连载,里面也有介绍)
不过,他唯独没有提起ENUM字段,说起这个ENUM,它倒是mysql的一个特色字段,在以前很多人喜欢用它,因为他可以设置字段的区间范围,会让值可以被数据库所控制,不至于出现意料不到的值(比如,字段只想有0和1,结果出现了2,那2就是赃数据了)
但ENUM带来的问题也不少,比如数据迁移的时候,他几乎不可能被其他数据库所支持,如果enum里面是字符串,对于其他数据库来说就更郁闷了,还不能设为tinyint等类型的字段(enum虽然可以存储字符串,但对于内部来说,还是以顺序进行索引,比如'a','b','c',我们也可以用索引值来获取值select * from tbl_name whre enum = 2,这与select * from tbl_name where enum = 'b'等义)如果你看明白了这两句SQL为什么等义,那么你也就可以了解为什么不主张用enum字段了。
因为,如果一个设计不合理的ENUM字段,给程序员带来的就完全是梦魇了,比如一个enum字段的范围是('0','1','2','3','4','5'),我想这时候,你会不会哭呢?要知道enum的枚举值对应的索引是从1开始的,因此,insert into table (enum)values(1),你知道是插的什么值吗?你select from table一下,你就会发现,你插入的并不是1,而是0。
更有甚者,由于enum的区间也是可以变动的,如果你在enum的枚举字段范围中加一个值,并且不是加在最后,那么也就相当于,你把原来的范围都改变了索引值,试想这又是多么一个恐怖的事情?
因此,如果你的系统中真的已经使用了mysql的enum字段类型,请在查询的时候直接查询值(并加上单引号),这样就不会使用enum自身隐藏的索引值来获取结果了。【顺便说一下,enum的默认索引是从NULL开始,如果你允许NULL并default NULL】
之所以提起这个,是在用shopnc系统的时候发现大量这样的字段,让人非常郁闷,几乎没有办法优化(如果是纯数值型,还是建议采用tinyint字段吧,毕竟它也只占一个字节,即使出现赃数据,也可以被接受,不象enum,如果纯数字型范围,更改了索引,你就不知道你查询的值是否正确了)
因此建议,如果字段是字符串,并且长度固定,可以尝试用char,如果是数值型,还是用tinyint吧,比较安全稳定,而且即使迁移,问题也不大。
Tags: enum, mysql, tinyint
DataBase | 评论:1
| 阅读:57651