数据查询方法的比较
查寻方式 |
缺点 |
优点 |
Locate |
会从数据来源中下载所有的数据,如果数据表中包含大量的数据,那么执行效率会很缓慢,而且容易造成客户端的当机 |
查寻数据的执行效率保持稳定的结果,而不管要查寻的数据是否已经存在于结果数据集中,而且没有其他的副作用 |
使用CloneCursor |
如果欲查寻的数据不在结果数据集中,那么仍然会下载数据表中所有的数据,而且表现的比直接使用Locate等方法还缓慢 |
如果欲查寻的数据已经存在于结果数据集中,那么它可以避免下载所有的数据,并且能够快速地找到查寻的数据 |
使用CloneCursor加SQL语句加AppendData |
可能会发生重复数据的副作用 |
提供最快的查寻效率,不管数据是否在结果数据集中,或是后端数据来源中。同时下载的数据量最少,网络的负荷最轻 |
使用拷贝数据 |
程序必须拷贝一些额外的数据 |
可以提供比直接使用Locate等方法更好的查寻效率,同时没有CloneCursor方法的缺点,也没有CloneCursor加SQL语句的副作用 |
附加说明:SQL 中提高查询速度的方法。
子查询为确保消除重复值,必须为外部查询的每个结果都处理嵌套查询。在这种情况下可以考虑用联接查询来取代。
如果要用子查询,那就用EXISTS替代IN、用NOT EXISTS替代NOT IN。因为EXISTS引入的子查询只是测试是否存在符合子查询中指定条件的行,效率较高。无论在哪种情况下,NOT IN都是最低效的。因为它对子查询中的表执行了一个全表遍历。
建立合理的索引,避免扫描多余数据,避免表扫描!
几百万条数据,照样几十毫秒完成查询.
作者: 陆岛工作室