降低分页操作的数据库成本

12月 9th, 2009 | Posted by | Filed under 数据库

review代码发现一些分页操作中存在SELECT * RROM tbl ORDER BY id DESC LIMIT N,M; 这样的SQL
当翻页很多时, N就会变得很大,这样每次MySQL都要丢弃很多结果集,造成浪费,性能会有很多下降。

其实可以发现,在插入修改并发不大时,每一页的起始和结束id都是固定的,其实在查询每一页的时候都可以知道下一页和上一页的id大致范围,记住这个id,就可以减小N的值,高并发时可以显著提高效率。

即使需要一次跳多页时,N也只需要 每页条数*跳过页数,比从所有记录中去滤掉前面的记录要好的多。

在网上也看到有人跟我差不多的想法:
http://www.sphinxsearch.org/?p=266

这位老兄阐述的比我清楚,验证了我的想法的正确性,跟开发人员做些交流后进行改进。

标签: , ,

今天的数据库设计培训

12月 8th, 2009 | Posted by | Filed under 数据库

系统由每一个细节组成,我喜欢这句话。
欢迎大牛拍砖,指出错误和不妥之处。

  tuniu_database_training.pdf (96.3 KiB, 1,804 hits)

Nginx的502错误

12月 8th, 2009 | Posted by | Filed under 操作系统

重启服务器后发现Nginx在我的WordPress报502 Bad Gateway错误。
查了好久,以为是nginx.conf或者php-fpm.conf的错,突然想起来,好像哪里看到说php.ini中memory_limit设低了会出错,
修改了php.ini的memory_limit为64M,重启nginx,发现真好了~
原来是PHP的内存不足了。
360M内存的服务器,扛这点应用应该OK~

标签: ,

博客已经移居国外

12月 7th, 2009 | Posted by | Filed under 随笔日记

鉴于我天朝最近严打,机房多次被封,不得以转战国外空间~
现移居于Linode,人多时速度有点慢,速度最快的那机房卖完了……

标签:

最近的记录

11月 29th, 2009 | Posted by | Filed under 随笔日记

最近比较忙,很多日志没发。简单记录下,有时间再详细整理。
Ameoba + Master-Slave和LVS + MySQL Cluster的安装配置玩的比较熟练了。计划写的一些自动优化脚本,遇到一些瓶颈,编译原理忘的差不多了,语法分析不好搞。
Oracle开始复习,重看当年培训的课程,装上了Oracle 11g R2 RAC/ASM,在Ubuntu下安装遇到些问题,莫名其妙的,不过都搞定了,把安装过程搞成Shell脚本,再次感慨Shell脚本不是一般的难用,更喜欢Perl,那个正则,那个灵活……。
觉得自己有个怪癖,为了几乎感觉不出来的性能,只要知道能优化,就要狂试,好几天为了几个gcc的flag参数一晚没睡。
Ganglia,Cacti,Monyog都是很不错的监控工具,MONyog虽然收费,可是竟然把代码存在SQLite数据文件中,于是便读出来修改掉验证注册的代码填回去……很猥琐,不过我这种穷人也只能这么弄了,买不起。
Workbench编译好了,不知道好用不,还没好好试试,看样子还是蛮帅的。
给自己的i7本终于尝试完了可用的全部GCC参数,以后编译就方便了,一次性吧FLAG粘进去就行了,不知道ubuntu有没有跟Gentoo一样可以设置编译全局参数的地方。第一次分期付款的本本,还是神舟,我买东西还是最考虑性价比,没钱去浪费买面子。
另外,比较了ArchLinux,Gentoo,Ubuntu,最后还是用Ubuntu了,毕竟电脑要用,不是来玩的,无止境的编译所有东西实在受不了,放弃Gentoo,Archlinux好一些,不过感觉Ubuntu软件的更新也挺快了,小东西就apt-get好了,LAMP的配置还是手动编译,挺好的。
调优,调整,就是每天做和想的事情,不过,在一个混乱的系统上修正,比重新做一个好的设计要难的多得多得多。
今天睡个好觉,明天公司三周年庆。Fenng说,三年上市,Google一搜,有17,300,000 条记录。NASDQ不是菜市场,想上就上。不知道我们算不算Fenng说的其中一个,我就是个脑子一热就能做决定的,总是在后悔和不后悔之间徘徊,在牛人遍地的班级,我的工资恐怕拿的是最低的,人生喜剧和悲剧都是来自比较,拿得少就努力去拿的多,抱怨没用。
Gearman/PostgreSQL也开始玩一玩,分布式还是很有乐趣的东西,不过手上测试机太少,没什么玩的。
Party貌似又开appspot了,可以访问了,继续翻墙。
一到没人的夜晚就开始感慨……
周一就有一批新人,不知道有没有可以做运维的,分担一些运维工作,我好去详细了解业务。

标签: