有关mysql与sqlserver性能的一点疑惑

问题描述

本人初学jsp,写了一个论坛,使用的数据库为mysql,在实际的测试中(本机win7),发现jsp连接数据库极其缓慢,比如论坛的主页把所需的元素从mysql数据库中取出来需要整整5秒钟,更换sqlserver2005后(其他没有任何变化),连接速度明显加快,主页秒进。对此我感到非常不解,开始怀疑是jdbc驱动的问题,更新到最新版后问题依旧,难道mysql的性能跟sqlserver的差距这么大吗???以下是我写的BaseDao,用于与数据库交换importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;publicclassBaseDao{publicfinalstaticStringDRIVER="com.mysql.jdbc.Driver";publicStringURL="jdbc:mysql://localhost:3306/bbs?user=root&password=123";publicConnectioncon=null;publicPreparedStatementpstmt=null;publicResultSetrs=null;publicConnectiongetCon(){Connectioncon=null;try{Class.forName(DRIVER);System.out.println("正在注册驱动");}catch(ClassNotFoundExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();System.out.println("注册驱动异常");}try{con=DriverManager.getConnection(URL);System.out.println("正在连接数据库");}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();System.out.println("数据库连接异常");}returncon;}publicvoidcloseAll(Connectionconn,PreparedStatementpstmt,ResultSetrs){System.out.println("数据库正在尝试关闭...");if(rs!=null){try{rs.close();}catch(SQLExceptione){//TODOAuto-generatedcatchblockSystem.out.println("结果集关闭异常");e.printStackTrace();}}if(pstmt!=null){try{pstmt.close();}catch(SQLExceptione){//TODOAuto-generatedcatchblockSystem.out.println("pstmt关闭异常");e.printStackTrace();}}if(conn!=null){try{conn.close();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();System.out.println("con关闭发生异常");}}}publicintexecuteSQL(Stringsql,StringgetValues[]){intresult=0;Connectionconn=null;PreparedStatementpstmt=null;try{conn=getCon();//获取数据库连接方法pstmt=conn.prepareStatement(sql);if(getValues!=null){for(inti=0;i<getValues.length;i++){pstmt.setString(i+1,getValues[i]);//i的值?}for(inti=0;i<getValues.length;i++){System.out.println(getValues[i]);}}result=pstmt.executeUpdate();//执行SQL语句System.out.println("正在执行executeSQL方法");}catch(Exceptione){System.out.println("executeSQL方法异常");//TODO:handleexception}finally{closeAll(con,pstmt,rs);}returnresult;}publicResultSetfindSQL(Stringsql,StringgetValues[]){//执行查询sql语句,不完善ResultSetrs=null;Connectioncon=null;PreparedStatementpstmt=null;if(getValues==null){try{con=getCon();pstmt=con.prepareStatement(sql);rs=pstmt.executeQuery();}catch(SQLExceptione){e.printStackTrace();System.out.println("执行findSQL语句异常(无条件)");}}else{try{con=getCon();pstmt=con.prepareStatement(sql);for(inti=0;i<getValues.length;i++){pstmt.setString(i+1,getValues[i]);System.out.println(getValues);}rs=pstmt.executeQuery();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();System.out.println("执行findSQL语句出现异常(有条件)");}}returnrs;}}我百度+google很久了,依然没能解决问题,各位大大如果能帮忙解决,实在是不胜感激!!!

解决方案

解决方案二:
虽然mysql我没有用过,不过可以肯定的是,Mysql性能绝对不会比sqlserver差那么多。应该是你的mysql配置用问题,或其他原因。到网上取查查mysql调优方面的东东吧
解决方案三:
mysql没怎么用,同意一楼的说话,效率应该不会差
解决方案四:
MySQL属于小型数据库,虽然功能没有SQLorOracle等大型数据库强大,但是性能还是可以的。执行百万数据时,MySQL可是速度最快的了。
解决方案五:
试一下建立索引,换一个存储引擎?MYSQL应该比MSSQLSERVER快才对吧?
解决方案六:
MySQL属于小型数据库,性能应该没那么差。你看你的配置,同意一楼的说法
解决方案七:
MySQL属于小型数据库,虽然功能没有SQLorOracle等大型数据库强大,但是性能还是可以的。执行百万数据时,MySQL可是速度最快的了。
解决方案八:
该回复于2010-11-22 09:57:04被版主删除
解决方案九:
你没有使用数据库连接池,连接mysql时,生成connection比较花时间的,对同一个connection做多次查询,你会发现,就第一次建立connection的时候慢,到后面就快了
解决方案十:
楼上当真。。。。?你的意思是用JNDI技术或者配置属性文件连接mysql会快很多?那为什么同样的设置,sqlserver会那么快?
解决方案十一:
mysql还是挺快的,小巧灵活,估计是设置的原因

时间: 2024-09-23 11:11:12

有关mysql与sqlserver性能的一点疑惑的相关文章

mysql与sqlserver的所有区别

mssql 的正式名字是 SQL Server MS公司出的.图形操作界面好一些,性能还可以.在在mssql和oracle上不能互换.支持OLEDB连接.asp.mssaql只能for window mysql 就是mysql 下面是readme:免费软件.性能也可以.速度快,用于小规模.命令行界面.(可以装图形操作软件.) sqlserver 我以前是做ASP的时候用的 现在学PHP..就和mysql搭配在用.感觉相当不错.操作简单.功能强大.. 驱动程序不一样 字段类型不一样 mysql有完

JUC中Atomic class之lazySet的一点疑惑

JUC中Atomic class之lazySet的一点疑惑 最近再次翻netty和disrupt的源码, 发现一些地方使用AtomicXXX.lazySet()/unsafe.putOrderedXXX系列, 以前一直没有注意lazySet这个方法, 仔细研究一下发现很有意思.我们拿AtomicReferenceFieldUpdater的set()和lazySet()作比较, 其他AtomicXXX类和这个类似. public void set(T obj, V newValue) { // .

SQLServer性能优化之 nolock,大幅提升数据库查询性能

原文:SQLServer性能优化之 nolock,大幅提升数据库查询性能 公司数据库随着时间的增长,数据越来越多,查询速度也越来越慢.进数据库看了一下,几十万调的数据,查询起来确实很费时间. 要提升SQL的查询效能,一般来说大家会以建立索引(index)为第一考虑.其实除了index的建立之外,当我们在下SQL Command时,在语法中加一段WITH (NOLOCK)可以改善在线大量查询的环境中数据集被LOCK的现象藉此改善查询的效能. 不过有一点千万要注意的就是,WITH (NOLOCK)的

MySQL和SQLServer的比较_Mysql

转自: http://www.qqread.com/mysql/z442108305.html 对于程序开发人员而言,目前使用最流行的两种后台数据库即为MySQL和SQLServer.这两者最基本的相似之处在于数据存储和属于查询系统.你可以使用sql来访问这两种数据库的数据,因为它们都支持ansi-sql. 还有,这两种数据库系统都支持二进制关键词和关键索引,这就大大地加快了查询速度.同时,二者也都提供支持xml的各种格式.除了在显而易见的软件价格上的区别之外,这两个产品还有什么明显的区别吗?在

ie兼容-关于IE条件语句的一点疑惑

问题描述 关于IE条件语句的一点疑惑 经常在网站头部看到类似于这样的IE条件注释: <!--[if IE 7 ]><html lang=""zh"" id=""ne_wrap"" class=""no-js ie7""><![endif]--> 虽然能够理解该注释语法:在浏览器版本为ie7时,应用该代码,非ie浏览器则只把其当做一条注释而忽略掉.但不太

MySQL order by性能优化方法实例

  这篇文章主要介绍了MySQL order by性能优化方法实例,本文讲解了MySQL中order by的原理和优化order by的三种方法,需要的朋友可以参考下 前言 工作过程中,各种业务需求在访问数据库的时候要求有order by排序.有时候不必要的或者不合理的排序操作很可能导致数据库系统崩溃.如何处理好order by排序呢?本文从原理以及优化层面介绍 order by . 一 MySQL中order by的原理 1 利用索引的有序性获取有序数据 当查询语句的 order BY 条件和

MySQL延迟关联性能优化方法

  这篇文章主要介绍了MySQL延迟关联性能优化方法,本文讲解了延迟关联的背景.延迟关联的分析.延迟关联的解决等内容,需要的朋友可以参考下 [背景] 某业务数据库load 报警异常,cpu usr 达到30-40 ,居高不下.使用工具查看数据库正在执行的sql ,排在前面的大部分是: 代码如下: SELECT id, cu_id, name, info, biz_type, gmt_create, gmt_modified,start_time, end_time, market_type, b

ibaties+mysql+java 查询性能问题

问题描述 ibaties+mysql+java 查询性能问题 通过ibaties 访问数据库返回列表给Java list,mysql控制台查询0.004秒 Java代码执行1分钟左右.有些时候 通过mysql管理工具查询几百万数据简单的sql实际看到数据时间是4分钟,系统返回的查询时间时0.002秒这种问题是由于什么引起的.怎样优化此类问题谢谢. 补充一下:不考虑硬件. 解决方案 可能的原因为: 1. 和数据库的IO负载有关: 2. mybatis查询开启了缓存. 针对查询,优化查询使用的索引,

1w条的excel表格导入mysql数据中性能的问题

问题描述 1w条的excel表格导入mysql数据中性能的问题 业务规则:1w条的excel表格导入mysql数据中,同时要校验数据的完整性和合法行以及判断是否是第一次导入:excel中每行记录对应数据库中两个表:原来的方案是把excel直接导入到临时表中,然后通过存储过程再把临时表数据中满足条件的数据抽取到目标表中:现在发现一个问题导入到临时表话费了将近100秒,再通过存储过程抽取到目标表(占时还没有写存储过程转换)中又将花费好多时间这给用户带来的体验不是很好.在这里请问各位有没有好的解决方案