|
原帖由 jinguanding 于 2008-1-22 12:35 发表 ![]()
若真的是很多数据...就可以考虑使用Limit n,m
我一开始没理解意思..很抱歉..但是这样就需要修改程序了....
索引还是要的..毕竟存储的数据具有 ...随机与偶然性.... 当真的数据量全在80%方面若数据量大可以过滤掉20%..效果也不错...
存储的数据具有随机与偶然性,正因为如此,可能导致尽管你只需要80%的数据,却必须扫描100%的数据块(尽管你走索引),也正因为如此索引扫描时会随机读
索引访问随机读(除非你去索引覆盖),而全表访问是顺序读(通常还能多块读),在总扫描数据块相当的情况下自然全表扫描效率更高
LZ...说的全表扫描...因为你表连接多..10k,100k可能好说..若达到了1000K甚至更多..全表扫描就可能会造成死锁的发生了...
我公司的MSSQL就是因数据量在10000K....但是没索引.....不知道之前的DBA是怎么想的..还是才用分表的方式.20张表....但是有张表中数据量最大....
经常会因扫描这张表而导致死锁的发生.......我创建了有效的索引..就没问题了...
所以全表扫描..是指数据量少的表..可以考虑..还可能比使用索引快
全表扫描相对索引扫描快不快不是看表的数据量大小,而应该看所需扫描的数据量占总数据量的大小
同上,为了看得清楚直接引用编辑,勿怪 |
|