Python论坛  - 讨论区

标题:[python-chinese] [django] 如何去减轻数据库负担呢?

2006年05月07日 星期日 16:15

风向标 vaneoooo at gmail.com
Sun May 7 16:15:03 HKT 2006

我写的练手的小玩意
基本上每次访问每次打开页面都是一次对数据库的查询
无论是article的列表页
还是article的内容页

全是查询输出.我觉得这样效率太低了
给服务器和数据库都带来很大负担

有没有解决方案呢?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060507/9de1518a/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月07日 星期日 23:22

xxmplus xxmplus at gmail.com
Sun May 7 23:22:51 HKT 2006

通常都是用connection pool来处理,来一个建一个当然慢了

在 06-5-7,风向标<vaneoooo at gmail.com> 写道:
>
>
> 我写的练手的小玩意
> 基本上每次访问每次打开页面都是一次对数据库的查询
> 无论是article的列表页
> 还是article的内容页
>
> 全是查询输出.我觉得这样效率太低了
> 给服务器和数据库都带来很大负担
>
> 有没有解决方案呢?
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to
> python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to
> python-chinese-request at lists.python.cn
> Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月09日 星期二 09:58

QingJi Chen chenqj at gmail.com
Tue May 9 09:58:57 HKT 2006

用cache呗

在06-5-7,风向标 <vaneoooo at gmail.com> 写道:
>
>
> 我写的练手的小玩意
> 基本上每次访问每次打开页面都是一次对数据库的查询
> 无论是article的列表页
> 还是article的内容页
>
> 全是查询输出.我觉得这样效率太低了
> 给服务器和数据库都带来很大负担
>
> 有没有解决方案呢?
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>


--
Regards
Q.J.Chen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060509/e6ae8c41/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月09日 星期二 21:42

朱志伟 eagles125 at gmail.com
Tue May 9 21:42:59 HKT 2006

在06-5-9,QingJi Chen <chenqj at gmail.com> 写道:
>
> 用cache呗
>

用cache处理是怎么进行的啊,能解释一下吗?谢谢。。
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060509/0803d6d5/attachment-0001.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月10日 星期三 09:43

Leo Jay python.leojay at gmail.com
Wed May 10 09:43:48 HKT 2006

On 5/9/06, 朱志伟 <eagles125 at gmail.com> wrote:
>
>  用cache处理是怎么进行的啊,能解释一下吗?谢谢。。
>
>
>

比方说,你做了一个查询select * from tblTest,然后利用查询结果生成了一个页面返回给用户。

做cache就是说,你返回的这个页面不要丢掉,保存起来,比方说保存成test.html,
以后只要对表tblTest没有做改动,每次再要做select * from tblTest的时候,就只要返回test.html就好了。

--
Best Regards,
Leo Jay
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060510/360da376/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月10日 星期三 10:39

gashero harry.python at gmail.com
Wed May 10 10:39:23 HKT 2006

判断一个页面的各种生成条件,如果条件没有改变就返回缓存中的东西。另外,很多WEB开发技术本身已经内置了Cache功能了,甚至你在不知道的情况下,已经帮你处理了。mod_python便是如此。
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060510/f74dcb6a/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月10日 星期三 13:32

Gong Li sparas2006 at gmail.com
Wed May 10 13:32:51 HKT 2006

数据库、内存对象、页面这三层都可以做缓存。
小程序如果数据量不是很大的话,对于只读操作直接用内存数据库也是一个办法。

On 5/9/06, 朱志伟 <eagles125 at gmail.com> wrote:
>
>
>
> 在06-5-9,QingJi Chen <chenqj at gmail.com> 写道:
> >
> > 用cache呗
> >
>
> 用cache处理是怎么进行的啊,能解释一下吗?谢谢。。
>
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060510/b96f9562/attachment-0001.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月10日 星期三 16:15

朱志伟 eagles125 at gmail.com
Wed May 10 16:15:44 HKT 2006

在06-5-10,Gong Li <sparas2006 at gmail.com> 写道:
>
> 数据库、内存对象、页面这三层都可以做缓存。
> 小程序如果数据量不是很大的话,对于只读操作直接用内存数据库也是一个办法。
>

数据库,页面缓存都好理解,但是内存对象的缓存是个什么概念?一般是怎么实现的呢?

常见的内存数据库有哪些啊?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060510/c91064a9/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月10日 星期三 16:19

yi huang yi.codeplayer at gmail.com
Wed May 10 16:19:03 HKT 2006

可以考虑生成静态页面

On 5/10/06, 朱志伟 <eagles125 at gmail.com> wrote:
>
>
>
> 在06-5-10,Gong Li <sparas2006 at gmail.com> 写道:
>
> > 数据库、内存对象、页面这三层都可以做缓存。
> > 小程序如果数据量不是很大的话,对于只读操作直接用内存数据库也是一个办法。
> >
>
> 数据库,页面缓存都好理解,但是内存对象的缓存是个什么概念?一般是怎么实现的呢?
>
> 常见的内存数据库有哪些啊?
>
>
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>


--
http://codeplayer.blogbus.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060510/12e00524/attachment-0001.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月10日 星期三 17:06

风向标 vaneoooo at gmail.com
Wed May 10 17:06:46 HKT 2006

to :yi huang

生成静态对普通的站点来说没大问题
不过想做交互式比较强web.2.0

那么恐怕没多大用处...



2006/5/10, yi huang <yi.codeplayer at gmail.com>:
>
> 可以考虑生成静态页面
>
>  On 5/10/06, 朱志伟 <eagles125 at gmail.com> wrote:
>
> >
>
> 在06-5-10,Gong Li < sparas2006 at gmail.com> 写道:
>
> > 数据库、内存对象、页面这三层都可以做缓存。
> > 小程序如果数据量不是很大的话,对于只读操作直接用内存数据库也是一个办法。
> >
>
> 数据库,页面缓存都好理解,但是内存对象的缓存是个什么概念?一般是怎么实现的呢?
>
> 常见的内存数据库有哪些啊?
>
>
>
>
>
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to   python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
>
>
> --
> http://codeplayer.blogbus.com/
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060510/5cfe6135/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月10日 星期三 17:46

yi huang yi.codeplayer at gmail.com
Wed May 10 17:46:23 HKT 2006

那就是缓存拉,有个memcache的项目,貌似很专业,不是很清楚。


On 5/10/06, 风向标 <vaneoooo at gmail.com> wrote:
>
>
>
> to :yi huang
>
> 生成静态对普通的站点来说没大问题
> 不过想做交互式比较强web.2.0
>
> 那么恐怕没多大用处...
>
>
>
> 2006/5/10, yi huang <yi.codeplayer at gmail.com>:
>
> > 可以考虑生成静态页面
> >
> >  On 5/10/06, 朱志伟 < eagles125 at gmail.com> wrote:
> >
> > >
> >
> > 在06-5-10,Gong Li < sparas2006 at gmail.com> 写道:
> >
> > > 数据库、内存对象、页面这三层都可以做缓存。
> > > 小程序如果数据量不是很大的话,对于只读操作直接用内存数据库也是一个办法。
> > >
> >
> > 数据库,页面缓存都好理解,但是内存对象的缓存是个什么概念?一般是怎么实现的呢?
> >
> > 常见的内存数据库有哪些啊?
> >
> >
> >
> >
> >
> >
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese at lists.python.cn
> > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request at lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
> >
> >
> >
> > --
> > http://codeplayer.blogbus.com/
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese at lists.python.cn
> > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request at lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
> >
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>


--
http://codeplayer.blogbus.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060510/f7bccbc1/attachment-0001.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月10日 星期三 18:01

Gong Li sparas2006 at gmail.com
Wed May 10 18:01:47 HKT 2006

抱歉django我没用过,下面是我的一般理解,不知道对你是不是适用:
数据在程序中的流量总是 数据库 --> (查询)--> 对象 --> (填充模板)--> 页面 ,这三个阶段都可以做缓存处理。
1、设置数据库自己的缓存,或者python里面数据库访问这一层的缓存策略。
2、自己把频繁使用的中间对象(可以是查询结果,也可以是再加工过的对象)在内存中缓存。
3、把最终页面缓存,生成临时文件或者静态页面。
方法1最简单,不过效果有限,完全的内存数据库是这种方式的加强版。
方法3对于小程序大部分时候应该够用了,不过大流量下I/O还是有可能成为瓶颈。
方法2应该是最灵活的,而且内存利用率也比较高,不过可能相对麻烦一些。

内存数据库的话,sqlite有in-memory模式,另外还有一个纯python实现的gadfly(
http://gadfly.sourceforge.net/)。
如果不需要复杂查询的话,自己用dict建索引存起来也是一个简单的办法,这样连SQL都可以省了。

On 5/10/06, 朱志伟 <eagles125 at gmail.com> wrote:
>
>
>
> 在06-5-10,Gong Li <sparas2006 at gmail.com> 写道:
>
> > 数据库、内存对象、页面这三层都可以做缓存。
> > 小程序如果数据量不是很大的话,对于只读操作直接用内存数据库也是一个办法。
> >
>
> 数据库,页面缓存都好理解,但是内存对象的缓存是个什么概念?一般是怎么实现的呢?
>
> 常见的内存数据库有哪些啊?
>
>
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060510/22625c08/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月10日 星期三 18:04

Gong Li sparas2006 at gmail.com
Wed May 10 18:04:58 HKT 2006

原理是一样的吧,XMLHTTPRequest无非也就是对某个url的请求,理解为对一个"XML页面"(或者"json页面"什么的)的访问就可以了,html页面怎么做,这些也可以怎么做。

On 5/10/06, 风向标 <vaneoooo at gmail.com> wrote:
>
>
>
> to :yi huang
>
> 生成静态对普通的站点来说没大问题
> 不过想做交互式比较强web.2.0
>
> 那么恐怕没多大用处...
>
>
>
> 2006/5/10, yi huang <yi.codeplayer at gmail.com>:
>
> > 可以考虑生成静态页面
> >
> >  On 5/10/06, 朱志伟 < eagles125 at gmail.com> wrote:
> >
> > >
> >
> > 在06-5-10,Gong Li < sparas2006 at gmail.com> 写道:
> >
> > > 数据库、内存对象、页面这三层都可以做缓存。
> > > 小程序如果数据量不是很大的话,对于只读操作直接用内存数据库也是一个办法。
> > >
> >
> > 数据库,页面缓存都好理解,但是内存对象的缓存是个什么概念?一般是怎么实现的呢?
> >
> > 常见的内存数据库有哪些啊?
> >
> >
> >
> >
> >
> >
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese at lists.python.cn
> > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request at lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
> >
> >
> >
> > --
> > http://codeplayer.blogbus.com/
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese at lists.python.cn
> > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request at lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
> >
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060510/07cb1445/attachment-0001.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号