[sql] view plain copy print?
select * from datatable limit offset,amount
select * from datatable limit offset,amount
这里就会有一个问题,随着offset值的越来越大,这条sql要扫描的表数据就会越来越多,因为要定位到offset这一行就需要扫描比offset小的所有行。显然在一张大数据量的表中,去这样做,性能就会出问题。为了避免这样的情形出现,我们自然会想到使用索引来解决,比如使用自增序列id进行分批取:
[sql] view plain copy print?
select * from datatable where id >= start and id<start+batchCount
select * from datatable where id >= start and id<start+batchCount
这样我们对id建索引,然后分批去取,显然效果会高很多,但是如果自增序列由于删除等 *** 作变得不是连续,就会出现空执行和多执行的情况出现。要解决这个方法,我们就需要结合使用索引和分页的优势来处理:
[sql] view plain copy print?
select * from datatable where id >= start limit batchCount
select * from datatable where id >= start limit batchCount
然后每次取回来我们再计算出起始id值,再去取下一批数据。这样就可以既避免了第一种不走索引,查询性能低下的问题,又解决了第二种id不连续,导致取回来的数据量不稳定导致浪费的问题了。
企业管理器-工具-数据转换服务-导出数据-下一步-数据库(选择要导出数据表的所在数据库)-下一步-目的(t):选择你要想要转换的文件类型(比如说文本文件)-在桌面上建一个1.txt-文件名选中1.txt-下一步-默认从源数据库...-源:选择要导出的数据表-下一步-完成.欢迎分享,转载请注明来源:内存溢出
评论列表(0条)