首先你要了解一下資料的傳輸:
1、你不用擔心,20多萬資料很少的。我見過最高的單個表有近2億行資料。
2、資料庫以sqlserver為例,它會把自己要用的資料快取到記憶體裡,然後再更新到硬碟,也就是說,你增刪改查的時候,實際上會先寫入到記憶體。所以sqlserver執行久了,你會發現任務管理器的記憶體佔用越來越高,可怕的是這個增長還沒有上限。故如果在需要一直執行,很少重啟裝置釋放記憶體的裝置,必須給資料庫設立一個允許使用的記憶體峰值。而總記憶體越大,資料庫能使用的記憶體越大,自然查起來越快。
然後不同的資料庫穩定性不同也會有區別。涉及到大資料,oracle要比sqlserver穩定,當然你的資料量還不算大量資料。
瞭解到到這裡就能明白資料庫查詢的快慢,不光只看sql語句的優劣,也要看你自身裝置的配置。
最後,涉及到查詢,你想讓速度最佳化,其實建立索引是個最簡便的方法,不過建立索引會在刪資料的時候有影響,你的資料量不大,可以忽略不計。為避免卡頓。你可以用top來過濾資料,每次只修改前面幾萬條ab相等,且c不等於1的資料,(數目你自己決定)
sql語句你可以用很多方法實現,這裡提供一個我最常用的
update top10000 table1 set table1.c=1 where table1.a in(select table2.b from table2) and table c1 ≠ 1
首先你要了解一下資料的傳輸:
1、你不用擔心,20多萬資料很少的。我見過最高的單個表有近2億行資料。
2、資料庫以sqlserver為例,它會把自己要用的資料快取到記憶體裡,然後再更新到硬碟,也就是說,你增刪改查的時候,實際上會先寫入到記憶體。所以sqlserver執行久了,你會發現任務管理器的記憶體佔用越來越高,可怕的是這個增長還沒有上限。故如果在需要一直執行,很少重啟裝置釋放記憶體的裝置,必須給資料庫設立一個允許使用的記憶體峰值。而總記憶體越大,資料庫能使用的記憶體越大,自然查起來越快。
然後不同的資料庫穩定性不同也會有區別。涉及到大資料,oracle要比sqlserver穩定,當然你的資料量還不算大量資料。
瞭解到到這裡就能明白資料庫查詢的快慢,不光只看sql語句的優劣,也要看你自身裝置的配置。
最後,涉及到查詢,你想讓速度最佳化,其實建立索引是個最簡便的方法,不過建立索引會在刪資料的時候有影響,你的資料量不大,可以忽略不計。為避免卡頓。你可以用top來過濾資料,每次只修改前面幾萬條ab相等,且c不等於1的資料,(數目你自己決定)
sql語句你可以用很多方法實現,這裡提供一個我最常用的
update top10000 table1 set table1.c=1 where table1.a in(select table2.b from table2) and table c1 ≠ 1