`
daqing15
  • 浏览: 41202 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

常见数据库(Oracle/MySQL)开发中的问题集

阅读更多

常见数据库(Oracle/MySQL)开发中的问题集
    系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质 SQL语句之间的速度差别可达到上百倍,可见对于一
    个系统不是简单的能实现其功能就可以了,而是要写出高质量的SQL语句,提高系统的可用性。
   
    作为一名程序员,在开发的过程中,不仅仅是关注代码的编码,在与数据库打交道的代码逻辑我们应该需要谨慎的编写,以求避免系统性能的代码或SQL出现。下面是性能影响的排序(以影响程度排序)
    D1    业务逻辑(影响最大)
    D2    数据设计(表结构设计,数据建模)
    D3    应用程序设计(SQL语句的写法)
    -->以上三条都会与作为程序员的我们息息相关的!一个好的程序员,不仅是能编写漂亮的代码,还要有一定的数据设计能力,和优秀的SQL编写能力,即,能知晓如何编写出性能好的SQL语句,能够察觉到SQL语句的写法是否会影响到性能.....(个人拙见,大牛见笑)
    D4  数据库的逻辑结构 (索引,区间,段,表空间)
  D5  数据库操作 (参数和配置)
  D6  访问路径
  D7  内存分配情况
  D8  I/O 和物理设计 (DBA 与业务沟通)(峰值多大,使用周期)
  D9  资源的征用
  D10 操作系统的调节
 
  从上面来看,D1-D3 影响最大但比较难修改 (事先去做),而且责任大部分在程序员肩上。
 
  关注SQL语句中 where 的编写
  多数情况下,Oracle使用索引来更快的遍历表,优化器主要根据定义的索引来提高性能。但是,如果在SQL语句的where子句中写的SQL代码不合理,造成优化器删去索引而使用全表扫描。所以,应清楚优化器根据何种原则来删除索引。
 
 
  关注数据库的N+1查询
 
 
  关注数据库的分页查询
  Oracle
      SELECT *
  FROM (SELECT ROWNUM r,t1.* From 表名称 t1 where rownum < M + N) t2
  where t2.r >= M

  例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:

  SELECT *
  FROM (SELECT ROWNUM R,t1.* From Sys_option where rownum < 30 ) t2
  Where t2.R >= 10

  MySQL
      SELECT * FROM 表名称 LIMIT M,N
      从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录
      select * from sys_option limit 10,20
     
  SQLServer
      从数据库表中的第M条记录开始取N条记录,利用关键字Top:值得注意的是如果SELECT语句中既有top,又有order by,那么,会从排序好的结果中选择:
      SELECT *
      FROM (SELECT TOP N * FROM
                  (SELECT TOP (M+N-1) * FROM TABLE_NAME ORDER BY 主键 DESC) TBL_1) TBL_2
      ORDER BY 主键 ASC
     
      Example here:(从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录)
      SELECT *
      FROM (SELECT TOP 20 *
      FROM (SELECT TOP 29 * FROM Sys_option ORDER BY sys_id DESC) T1 ) T2
      ORDER BY sys_id ASC
     
     
     
         

1
0
分享到:
评论

相关推荐

    数据库驱动集(oracle/mysql/mssqlserver)

    数据库驱动集是连接应用程序与不同...在实际开发中,还需要注意驱动的版本匹配问题,确保所使用的驱动与数据库服务器的版本相兼容,以避免可能出现的兼容性问题。同时,及时更新驱动可以获取最新的性能优化和安全修复。

    java连接oracle/mysql数据库简单示例(附oracle+mysql数据库驱动包)

    在Java编程中,连接Oracle和MySQL数据库是常见的需求,这对于数据操作、数据分析或者构建Web应用程序至关重要。本示例将向你展示如何使用Java API来实现这两个数据库的连接,并且提供了相应的数据库驱动包。 首先,...

    jsp+oracle/mysql源码

    【标题】"jsp+oracle/mysql源码"涉及的是在Web开发中使用Java Server Pages(JSP)技术结合Oracle或MySQL数据库进行数据管理的应用实例。这是一个常见的组合,因为JSP是用于构建动态网页的Java技术,而Oracle和MySQL...

    Java连接各个版本Oracle/Mysql/DB2…数据库代码

    在Java编程中,连接到各种类型的数据库是常见的需求。这里主要涉及的是Oracle、MySQL和DB2这三种数据库,以及提及的SQL Server和Informix。Java提供了JDBC(Java Database Connectivity)API来实现与多种数据库的...

    各种数据库驱动程序 mysql数据库/sqlserver数据库/oracle数据库/sqlserver数据库(JTDS)驱动总结

    本文将对MySQL数据库、SQL Server数据库、Oracle数据库以及使用JTDS驱动的SQL Server数据库进行深入探讨。 #### MySQL数据库驱动 MySQL是全球广泛使用的开源关系型数据库系统之一。为了使Java应用程序能够连接到...

    (sqlserver/oracle/mysql/access/sqlite)数据库操作组件Zhuyi.DBUtility

    Zhuyi.DBUtility是一个数据库操作组件,支持多种常见的关系型数据库系统,包括SQL Server、Oracle、MySQL、Access以及SQLite。这个组件的核心在于提供了一种统一的接口来简化数据库的CRUD(创建、读取、更新和删除)...

    java 连接sql server/Oracle/Mysql等常用数据库方法

    在Java开发中,连接SQL Server、Oracle、MySQL等常见数据库的方法主要有两种:JDBC-ODBC桥接和JDBC直连。这两种方式都是通过Java的JDBC(Java Database Connectivity)API来实现的,允许Java应用程序与各种数据库...

    Oracle/SQLServer/MySQL驱动包下载

    Oracle、SQL Server和MySQL是最常见的三种关系型数据库管理系统(RDBMS),广泛应用于企业级应用、网站开发和数据分析等场景。本资源提供了这三种数据库的JDBC驱动包,方便开发者在Java环境中与数据库进行交互。 1....

    多种数据库连接配置(oracle\mysql\access)

    本文将深入解析多种数据库连接配置的知识点,包括Oracle、MySQL和Access的连接方式、配置参数以及常见问题解决策略。 ### Oracle数据库连接配置 Oracle数据库以其强大的功能和稳定性被广泛应用于企业级应用中。...

    java连接oracle和mysql数据库的jar包

    Java是一种广泛使用的编程语言,尤其在企业级应用中,它经常需要与各种数据库进行交互,如Oracle和MySQL。为了在Java程序中连接到这些数据库,我们需要特定的驱动程序,通常以JAR(Java Archive)文件的形式存在。...

    oracle 和mysql数据库的连接池一起下载

    在实际应用中,选择Oracle或MySQL数据库以及其对应的连接池,主要取决于项目需求、性能要求、开发语言支持等因素。例如,Oracle数据库在大型企业级应用中较为常见,其数据处理能力强,适合高并发场景;而MySQL则因为...

    超级好用的数据库迁移工具(MySQL、Oracle)

    2. **数据转换**:根据目标数据库Oracle的特性,对数据进行必要的格式转换,如字符集转换、字段类型转换等。 3. **数据加载**:将转换后的数据写入Oracle数据库中,确保数据结构和原MySQL数据库一致。 在实际操作中...

    SpringBoot定时任务实现Oracle和mysql数据同步

    在IT行业中,数据库同步是一项常见的需求,特别是在分布式系统或者多数据库环境里。Spring Boot作为Java领域的一个热门微服务框架,提供了强大的定时任务功能,能够帮助我们实现不同数据库间的数据同步,比如Oracle...

    springboot+mysql+oracle+druid 双数据库进行数据同步

    在IT行业中,数据库同步是一个常见的需求,特别是在分布式系统或者数据迁移场景下。本项目主要探讨了如何使用SpringBoot框架结合MySQL和Oracle两个不同的数据库系统,实现数据的实时或定时同步,尤其是在数据量庞大...

    记使用Oracle SQL Developer 迁移MySql 数据至 Oracle.docx

    在IT领域,数据库迁移是一项常见的任务,特别是在不同的数据库系统之间,如从MySQL迁移到Oracle。本文将详细讲解如何使用Oracle SQL Developer工具进行这样的迁移过程,以及如何解决在迁移过程中遇到的问题。 首先...

    数据库驱动Mysql + Oracle

    在本主题中,我们主要关注两种常用的数据库系统:MySQL和Oracle,以及它们对应的Java数据库连接(JDBC)驱动。 **MySQL数据库驱动** MySQL是一种开源、关系型数据库管理系统,广泛应用于Web应用、小型到大型企业...

    如何连接MySQL-Oracle数据库

    #### 其他常见数据库连接 除了 MySQL 和 Oracle 之外,还有其他一些常用数据库的连接方式: 1. **ODBC Bridge**:通过 ODBC 连接各种数据库。 - **驱动程序类**: ``` sun.jdbc.odbc.JdbcOdbcDriver ``` - ...

    java数据库驱动 oracle mysql sqlserver oracle pointbase

    综上所述,这个压缩包提供的Java数据库驱动涵盖了四种常见的数据库系统,可以满足开发人员在多种环境下进行数据操作的需求。同时,附带的测试程序可以帮助开发者快速验证和理解如何在Java项目中正确使用这些驱动。

    OracleToMysql转换器

    2. **表结构分析**:OracleToMysql工具会自动检测Oracle数据库中的表结构,包括字段名、字段类型、主键、外键、索引等信息,并生成对应的Mysql表结构。 3. **数据迁移**:在分析完表结构后,工具将开始迁移数据。它...

Global site tag (gtag.js) - Google Analytics