作者come ()
看板Database
标题Re: [SQL ] 读取资料表「全部」内容的最佳作法?
时间Mon Jul 17 18:00:55 2006
time out的问题好解决
但是比较麻烦的是同步的问题
如果你要做full table read
建议你找没有人存取DB的时间,把整个表格lock起来
一次select既可
select完在解除
这三个动作要放在一个transaction内解决
这样最快
※ 引述《b6s (b6s)》之铭言:
: ※ 引述《b6s (b6s)》之铭言:
: : 标题: [SQL ] 读取资料表「全部」内容的最佳作法?
: : 时间: Sun Jul 16 18:00:42 2006
: : 各位好,我知道这个要求很……,但还是想问一下以厘清自己的观念。
: : 平常,我都是用手动分页的方式在做,也就是实际上指定好第 n 笔到第 m 笔,控制在合
: : 理的数量下才做 select。
: : 我想知道的是,是否有更符合当今技术的方式,例如 virtually 移动 cursor 或是
: : cached result set 什麽的?
: : 感谢各位的指教。
: : --
: : ◆ From: 59.105.131.104
: : 推 come:看不懂你在说什麽 07/16 18:27
: : 推 fumizuki:好深奥的问题 07/16 19:37
: 抱歉,我讲清楚一点。
: 假设我有个资料表,里头有十万笔资料,叫作 tb1。
: 由於某种诡异的需求,使得我必须 SELECT * FROM tb1;
: 如果这十万笔资料的 columns 稍微多一点,这样子硬干是会 timeout 的。
: 平常,我都是先 SELECT COUNT(*) FROM tb1; 算一算总共有多少笔,
: 然後再手动分页式地一次一次取回来,
: 例如 SELECT * FROM tb1 WHERE id > 0 AND id < 1000;
: 於是我想知道,针对某些语言或某些资料库,是否有更好的方式?
: 例如某些神奇的 ResultSet/RecordSet 具备了 cursor 能够虚拟地分页,
: 而不必真的把资料一次全部捞回来等等。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.142.183
1F:→ come:忘记说 在萤幕显示会很慢 建议直接存到档案 07/17 18:01