但表查询可能会好一些,你可以在你的数据库上,执行你的SQL语句式式,看看性能怎样!

解决方案 »

  1.   

    单表查询可能会好一些,你可以在你的数据库上,执行你的SQL语句式式,看看性能怎样!但--〉单
      

  2.   

    表应该加上索引,SQL语句应该用排序,还有什么需要注意的?
    还有一个表里存放着20万条记录,这两个表都在一个数据库的里的一台服务器上
      

  3.   

    同意yeno(无忧天)使用索引.在存储过程中实现分页查询.
    参阅<My SQL 网络数据库指南,机械工业出版社,2000(Paul DuBois)>这本书,第4章的内容.
      

  4.   

    to sunweijia(sunweijia) :
    你有在存储过程中实现分页的代码吗?
    能帮我把下面的这个例子改写一下吗?,谢谢
    <%
    String id=request.getParameter("id");  //String sql="";
    sql="select id,name from table where id="+id;
    rs=cn.executequery(sql); //改写成存储过程中实现分页
    ..........
    %>
      

  5.   

    sql="select * from (select rownum as my_rownum,table_a.* from("+sql0+") table_a where rownum<"+nEndBeginRecNum+") where my_rownum>="+nBeginRecNum;
      

  6.   

    MySQL不支持存储过程,事务也要4。0以后的。不要白费蜡啦。
      

  7.   

    to showerXP(小阿!) :
    我现在用的是MySQL3.23。MySQL官方网站上
    http://www.mysql.com/downloads/index.html 发布了
    MySQL 4.0 -- Production release (recommended) 
    MySQL 4.1 -- Alpha release (use this for new development) 
    MySQL 5.0 -- Development tree (use this for previewing and testing new features) 
    这3个产品,请问大家,我用4.1版本的可以支持事务处理(主要是回滚)和存储过程吗?
    看来只能建索引了。
    我mysql3.23安装目录 D:\mysql,我的数据库为gbinfo,则D:\mysql\data\gbinfo为我的全部数据
    如果我要从3.23到4.0转换,也安装在相同路径,是否我只要把D:\mysql\data\gbinfo的数据拷贝进去就可以了,程序上还需要做变动吗?还需要下载支持4.1jdbc驱动吗?
      

  8.   

    晕晕..这么多的数据建议和老板商量换一个数据库,以后到了xxx万条就受不了了
    oracle很不错,他的分页技术的速度应该来说是最快了的
    还有你在查询的时候,索引的建立非常重要,索引有非集群索引和集群索引
    当你用like等查询到1对多关系的时候,需要建立一个多个字段的集群索引
    单字段的非集群索引不利于这样查询,集群索引会把数据将重复的堆放在一起
    比如把id,name,date3个字段做集群索引,相同name的数据会被对方在一个数据页存储起来
    这样sql就不需要做全表遍例即可通过集群索引迅速的到符合条件的数据页查询到结果
    同样要注意sql的写法
    select count(*) from table_name where name like 'xx' and id<xxx
    会比select count(*) from table_name where id<xxx and name like 'xx'速度快
    --------------
    以上纯属个人意见,如有错误请指正
      

  9.   

    thanks hykwolf(Yankang Hu) 。请问大侠,我把MySQL4.0装在d:\mysql
    MySQLCC0.9.3装在d:\mysql\mysqlcc
    以前我是先运行winmysqladmin.exe,然后填入用户名:root,密码:root
    这次我没有先运行D:\mysql\bin\winmysqladmin.exe,而是直接运行了mysqlcc,结果,mysql服务就是红灯,我怎么才能让系统弹出那个窗口,然后填入用户名:root,密码:root,服务正常?
      

  10.   

    mysql4。0好像支持全文搜索,建议你去看看
      

  11.   

    存储过程还是不行,事务可以的。
    优化where子句。
      

  12.   

    你这里有40万条,3000万条的我都查过,不过使用的是oracle的分页,不知道mysql能不能用。
      

  13.   

    很抱歉,当使用like模式匹配时,数据库索引是不起作用的,所以40万条记录是足够慢的!
      

  14.   

    select bzh,chinesename from GB where (topic like '等级'and topic like '规范') or (topic like '质量') limit 9,8从第九条记录开始取后面的八条记录.一次取几十万的记录出来,有可能不是数据库的效率问题,而是有可能数据会放到内存中cache起来,所以内存用光了,也会造成系统慢.......可以试一下用limit做翻页.
      

  15.   

    to all:
    我用的是MySQL4.0.16数据库,我的系统数据量很大,目前是40多万条,还在不断的迅速递增,同时,我的系统还需要进行批更新,所以必须得有事务处理的rollback功能。
    如果在做查询的时候用索引和like %xxx%,当使用like模式匹配时,数据库索引是不起作用的
    所以有人建议我用全文检索,但文档上说表必须是MyISAM类型才可以支持全文检索。
    由于我的系统必须需要事物处理!!!,表必须是InnoDB类型才可以,这难道不是鱼和熊掌吗?我怎么办啊,上帝阿,比杀了我还痛苦
      

  16.   

    to  pantech_36(~ 25436 ~) :
    我的翻页就是用limit做的阿,实在不行,就用like %% 了,慢就慢吧,随叫数据量大呢
      

  17.   

    索引要做
    分页也要做
    同时别忘了sql的性能
    有好多文章说如何提高sql的性能的,你找几篇看看
      

  18.   

    std表结构如下:
    A107(标准号) A108(标准组织)  A298 (中文标准名称)  A836(中文主题词)
    1103          GB            棉花(细绒棉)         棉花;质量;等级(质量);检验;验收
    1787          GB            航空汽油             活塞;航空发动机;燃料;规范//字段含义:A001为主键
    //SELECT A100 AS 标准号, A107 AS 标准序号, A108 AS 标准组织, A298 AS 中文标准名, 
    //A836 AS 中文主题词, A200 AS 状态
    //FROM STD order by A001 desc检索条件如下:
    中文标准名称:空气
    主题词关键字:空气 质量
    标 准 号:1
    标准组织:GB生成检索sql=select A100,A298,A200 from std where 1=1 and (A108 like '%GB%') and (A107 like '%1%') and (A298 like '%空气%') and (A836 like '%空气%') and (A836 like '%质量%') order by A001 desc limit 10,10我总是感觉这样处理,效率太低了。请问,SQL语句能否在优化一下?
      

  19.   

    后台程序实现多线程搜索:举各例子:假设有一个自动编号的列:你可以启动n多个线程:
    线程--=-----搜索范围--
    thread0 = 自动编号尾数/n=0
    thread1 = 自动编号尾数/n=1
    thread2 = 自动编号尾数/n=2
    thread3 = 自动编号尾数/n=3
    thread4 = 自动编号尾数/n=4
    thread5 = 自动编号尾数/n=5
        。。
    启动的线程数需要和服务器性能,数据库性能等综合比较!
      

  20.   

    建议分页。 一般数据库都支持top 问题吧。 找找资料
      

  21.   

    sybase就不支持top,不分页的页面你见过吗?和没说一样啊