to sunweijia(sunweijia) : 你有在存储过程中实现分页的代码吗? 能帮我把下面的这个例子改写一下吗?,谢谢 <% String id=request.getParameter("id"); //String sql=""; sql="select id,name from table where id="+id; rs=cn.executequery(sql); //改写成存储过程中实现分页 .......... %>
sql="select * from (select rownum as my_rownum,table_a.* from("+sql0+") table_a where rownum<"+nEndBeginRecNum+") where my_rownum>="+nBeginRecNum;
MySQL不支持存储过程,事务也要4。0以后的。不要白费蜡啦。
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驱动吗?
晕晕..这么多的数据建议和老板商量换一个数据库,以后到了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'速度快 -------------- 以上纯属个人意见,如有错误请指正
select bzh,chinesename from GB where (topic like '等级'and topic like '规范') or (topic like '质量') limit 9,8从第九条记录开始取后面的八条记录.一次取几十万的记录出来,有可能不是数据库的效率问题,而是有可能数据会放到内存中cache起来,所以内存用光了,也会造成系统慢.......可以试一下用limit做翻页.
to all: 我用的是MySQL4.0.16数据库,我的系统数据量很大,目前是40多万条,还在不断的迅速递增,同时,我的系统还需要进行批更新,所以必须得有事务处理的rollback功能。 如果在做查询的时候用索引和like %xxx%,当使用like模式匹配时,数据库索引是不起作用的 所以有人建议我用全文检索,但文档上说表必须是MyISAM类型才可以支持全文检索。 由于我的系统必须需要事物处理!!!,表必须是InnoDB类型才可以,这难道不是鱼和熊掌吗?我怎么办啊,上帝阿,比杀了我还痛苦
to pantech_36(~ 25436 ~) : 我的翻页就是用limit做的阿,实在不行,就用like %% 了,慢就慢吧,随叫数据量大呢
索引要做 分页也要做 同时别忘了sql的性能 有好多文章说如何提高sql的性能的,你找几篇看看
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语句能否在优化一下?
还有一个表里存放着20万条记录,这两个表都在一个数据库的里的一台服务器上
参阅<My SQL 网络数据库指南,机械工业出版社,2000(Paul DuBois)>这本书,第4章的内容.
你有在存储过程中实现分页的代码吗?
能帮我把下面的这个例子改写一下吗?,谢谢
<%
String id=request.getParameter("id"); //String sql="";
sql="select id,name from table where id="+id;
rs=cn.executequery(sql); //改写成存储过程中实现分页
..........
%>
我现在用的是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驱动吗?
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'速度快
--------------
以上纯属个人意见,如有错误请指正
MySQLCC0.9.3装在d:\mysql\mysqlcc
以前我是先运行winmysqladmin.exe,然后填入用户名:root,密码:root
这次我没有先运行D:\mysql\bin\winmysqladmin.exe,而是直接运行了mysqlcc,结果,mysql服务就是红灯,我怎么才能让系统弹出那个窗口,然后填入用户名:root,密码:root,服务正常?
优化where子句。
我用的是MySQL4.0.16数据库,我的系统数据量很大,目前是40多万条,还在不断的迅速递增,同时,我的系统还需要进行批更新,所以必须得有事务处理的rollback功能。
如果在做查询的时候用索引和like %xxx%,当使用like模式匹配时,数据库索引是不起作用的
所以有人建议我用全文检索,但文档上说表必须是MyISAM类型才可以支持全文检索。
由于我的系统必须需要事物处理!!!,表必须是InnoDB类型才可以,这难道不是鱼和熊掌吗?我怎么办啊,上帝阿,比杀了我还痛苦
我的翻页就是用limit做的阿,实在不行,就用like %% 了,慢就慢吧,随叫数据量大呢
分页也要做
同时别忘了sql的性能
有好多文章说如何提高sql的性能的,你找几篇看看
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语句能否在优化一下?
线程--=-----搜索范围--
thread0 = 自动编号尾数/n=0
thread1 = 自动编号尾数/n=1
thread2 = 自动编号尾数/n=2
thread3 = 自动编号尾数/n=3
thread4 = 自动编号尾数/n=4
thread5 = 自动编号尾数/n=5
。。
启动的线程数需要和服务器性能,数据库性能等综合比较!