Re: [SQL ] 讀取資料表「全部」內容的最佳作法?
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
→
07/17 18:01, , 1F
07/17 18:01, 1F
討論串 (同標題文章)
Database 近期熱門文章
PTT數位生活區 即時熱門文章