关于怎么提高查询的速度呢?数据量大, 又模糊查询速度好慢呀!(20分)

  • 主题发起人 delphiere
  • 开始时间
D

delphiere

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好,为什么我的查询速度那么慢呀!我翻了一下资料,说建立索引可以提高查询的速度!
请大家帮我说说为什么建议索引查询速度就会提高呢?又是怎么建立的呢?我买的书没有谈
到这一点有啊!对了我一般的查询语句都是这样写的;
with adoquery1 do
begin
close;
sql.clear;
sql.add('') //由于这里数据量比较大,又要查询两个表,并模糊查询记录。速度很慢!
//那么索引要怎么建呢?写在我的语句那里好呢?语句该如何写呢?谢谢!
 
要是模糊查询的话建索引是没有用的。
查询尽量不要用like
 
查询速度慢,有几个因素:
1、数据量实在大,哪你必须分批进行;
2、索引的 60% 规则,也就是说,如果你查询的数据量 > 整个数据总量的 60%,
索引只有更慢;
3、除此之外,在所查数据的关键域上增加索引,如一个职员表,现在查询要求是
对部门进行查找,那么就应该在部门上增加索引。索引的增加可以看看 Delphi 的
帮助文件示例:CreateTable,说得很清楚。
 
谢谢了。模糊查询,建索引没有用吗?
那可不可以简单说一下建索引的例子呀,delphi里面的例子我实在看不习惯!
 
如果数据量很大,判断又繁,返回的结果集又很大 --------- 祈求你的用户的谅解吧,
我的一个数据汇总曾经化了 10 多分钟,没办法的。选择好数据库,选择最快的,比如:
MySQL;多些冗余数据,不要用标准的教材式的建库方法,减少表的跨越量;减少返回
结果集的字段,特别是大的如 BLOB 型的;优化本身的 SQL 查询表达式....

试吧,试到你满意为止...
 
可以从多方面入手:
1、提高硬件的性能:加大内存容量、使用高速硬盘、使用高性能服务器
2、建立良好的数据结构,就算是模糊查询,建立索引一样会有效果。
3、使用优化的查询语句,尤其是多表查询。我曾测试过,达到同样的功能,
使用不同的语句效率相差60多倍。
 
多人接受答案了。
 
顶部