其中row是从0到44000,col也是从0到44000;
共row*col条数据,就是个矩形的。
row,col,X,Y,BX,BY是常查询的。
一般是row和col一起查;
X和Y一起查;
BX和BY一起查
请问如何建立索引查询时间会加到最低。
对了,由于数据量太大,一个表是2亿条记录以上,如何将索引加在这几个表上呢?
Sql server 2008
有个计算公式,根据你的数据分布,WHERE条件,
SELECT COUNT(DISTINCT [ROW]) AS DistinctColVales,
COUNT([ROW]) AS NumberOfRows,
(CAST(COUNT(DISTINCT [ROW]) AS DECIMAL)
/CAST(COUNT([ROW])) AS Selectivity
FROM dbo.GridPoint_0
选择Selectivity 较高的优选创建。
把你需要经常查询以及作为where条件的列作为索引
如果要提高查找速度,也可考虑基于USB口、网口建立小型分布式数据库,查找操作可在数台机器之间同步分段进行。
基于USB口的方案参见:
http://www.cnblogs.com/LiuKaiFa/p/USB_%E8%81%94%E6%9C%BA%E7%BA%BF_API.html
不需要ID键,使用col、row两个字段建立聚簇索引。再将X、Y及BX、BY建立两个一般索引。
如果sqlserver的话,建议你根据你的常用条件建立多个索引,虽然浪费资源,但查询时速度比较快,如果是oracle,可以建立单列索引,oracle会同时采用几个索引去组合
建议你建立 row和col、x和y、bx和by的三条索引