作者PsMonkey (痞子军团团长)
看板PHP
标题Re: [请益] 自定函数与阵列的改善
时间Thu May 23 15:29:22 2013
先说,我没写过什麽正规 PHP 程式
就当我是来骗文章数,听听就好
※ 引述《eiping (一平兄)》之铭言:
: 这个函数这样做法,跟我之前的其实完全一样,只要用到一次函数,就会读取一次资料库
: 我希望的做法是,读取一次资料库,把资料放进阵列,之後下面都读取阵列,就不用每次
: 都读取资料库,从记忆体(阵列)读取资料,总是比从硬碟(资料库)来的快吧?!
: 还是其实原先的做法没错,当频繁读取某个资料表取得对应,MYSQL会把资料放进记忆体
: 去存取,所以我不用考虑这些事情,就照原先的做法去做就好~?
用 Java 连 database,自己用 JDBC 连
通常要注意哏是 connection open 缓慢的问题
然後套个 connection pool 之类的就没事了
PHP 有没有这方面的问题,我不太清楚 [死]
如果单纯看「下 select 语法」→「DB 回传资料」这段的时间
(也就是不考虑 open connection 的速度)
嗯... 这时间真的很重要吗?
我现在手上的案子,程式要在一台据说不是很快的机器
用 browser 作 UI 操控实际硬体作动(下略)
然後因为 ooxx 因素,所以要在上头塞会员资料提供查询
那麽要是实际 online 的话,资料数量以万笔为单位很正常
我就问了:这样查询速度没问题吗?
老人前辈说:二十年前用 386 跑 dBase
query 几十万笔资料也可以在一秒内反应完毕
我:...... 报告是
当然,如果好几个 table 要 join 来 join 去,这就难讲
(可以作 view 之类的鬼玩意来协助?)
反过来说...
你今天真的要省,那就是要用类似 singleton 的方式
让这个阵列资料在整个系统(而不是单一个 PHP 的 page cycle)都用得到
这样才能建一次就用好多次...
我不确定 PHP 做不做得到,但是很明确的这会有两个哏
1. 如果资料量很小,db 找起来也不会花太久
人类真的敢觉得出来差异吗?
2. 如果资料量很大,你不担心 memory resource 被吃光光吗?
(Java GC 表示:)
然後你还得保持阵列跟 database 资料的同步性...... blahblah
还不如像 g 版主说的方向,找 database cache(是这样叫的吗?)
或是......
奔雷手文泰来:
插到了以後在说吧,自然有法律会制裁他,
你们两个敢快打好不好,我们都快闷死了 ...
--
钱锺书:
说出来的话
http://www.psmonkey.org
比不上不说出来的话
Java 版 cookcomic 版
只影射着说不出来的话
and more......
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.25.0.70
1F:→ MOONRAKER:Premature optimization is the root of all evil. 05/23 16:08