佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1273|回复: 3

资料库的效率问题

[复制链接]
发表于 2-10-2004 11:01 PM | 显示全部楼层 |阅读模式
请问各位兄台,
  当我有两个Table时,Customer 会link到Customer Location 的Table,因为一个Customer可能有几个分行,我的问题是,当我有一万个Customer对应到一万个Customer Location时,整个Query在读取的时候就要达三分钟那么久,请问这个正常吗?我用的是Mysql,你们的Database Server也是如此吗?

我的设计如下,

    Customer:='Create Table ac_customer ('+
           'com_code varchar(10) not null,'+
           'cus_code varchar(10) not null,'+
           'cus_name varchar(30) ,'+
           'cus_attention varchar(30) ,'+
           'cus_date date ,'+
           'cus_websites varchar(30) ,'+
           'cus_email varchar(30) ,'+
           'cus_registercode varchar(20) ,'+
           'emp_code_salesman varchar(10) ,'+
           'cur_code varchar(10) ,'+
           'cus_type Enum(''Retail'',''Personal'',''Dealer'') ,'+
           'cusgrp_code varchar(10) ,'+
           'cusacgrp_code varchar(10) ,'+
           'pm_code varchar(10) ,'+
           'dlt_code varchar(10) ,'+
           'dlm_code varchar(10) ,'+
           'cdt_code varchar(10) ,'+
           'cus_creditlimit double(11,2) ,'+
           'cus_creditused double(11,2) ,'+
           'cus_flatdisc double(11,2) ,'+
           'bank_code varchar(10) ,'+
           'cus_bankaccount varchar(30))';

    Customer Location:='Create Table ac_cuslocation ('+
           'com_code varchar(10) not null,'+
           'cus_code varchar(10) not null,'+
           'cusloc_code varchar(10) not null,'+
           'cusloc_name varchar(30),'+
           'cusloc_address1 varchar(30),'+
           'cusloc_address2 varchar(30),'+
           'cusloc_address3 varchar(30),'+
           'cusloc_poscode varchar(6),'+
           'cusloc_city varchar(20),'+
           'cusloc_state varchar(20),'+
           'ctr_code varchar(10),'+
           'cusloc_tel1 varchar(20),'+
           'cusloc_tel2 varchar(20),'+
           'cusloc_fax1 varchar(20),'+
           'cusloc_fax2 varchar(20))';

              sql:='select cus.cus_code as Code,'+
                                   'cus.cus_name as Name,'+
                                   'cusloc.cusloc_tel1 as Telephone,'+
                                   'cusloc.cusloc_fax1 as Mobile,'+
                                   'cus.cus_attention as Attention '+
                                 'from ac_customer as cus,ac_cuslocation as cusloc '+
                                 'where cus.com_code=:comCode and '+
                                 'cus.cus_code=cusloc.cus_code and '+
                                 'cusloc.cusloc_code=:cusLocCode '+
                                 'order by cus.cus_name ';


先谢谢大家的意见了!!!
回复

使用道具 举报


ADVERTISEMENT

发表于 4-10-2004 09:10 AM | 显示全部楼层
这很正常, 但可以解决. 问题是你需要每一次读一万个 data 吗? 你的 database 有没有做好 indexing 呢?
回复

使用道具 举报

发表于 4-10-2004 12:55 PM | 显示全部楼层
如果不需要一次过display 1 万个record,那么就先决定好从那里开始到那里结束,比如从100开始的下30个record "LIMIT  30 OFFSET 100"

不知道适合你吗?
回复

使用道具 举报

 楼主| 发表于 4-10-2004 08:57 PM | 显示全部楼层
兄台,兄台,小弟学识浅薄,已经解决了,原来是 indexing 的问题,谢了谢了.....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 26-5-2024 12:42 AM , Processed in 0.060713 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表