`
zkgale
  • 浏览: 101799 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

无关联,高缓存数据库存储方式

阅读更多

公司现在使用的方式,这种方式或许并不好,但是使用上还是很方便

 

主要由几个部分组成

1. 数据库表

2. 存储过程

3. 数据库表结构类

4. 数据库访问

5. 缓存

6. 组装器

 

1. 数据库表

    主要用来存放数据,可以按一般的情况来进行存储,也就是,每个字段都是不同的类型,但是也可以使用极端的情况来实现,即,表内所有字段均为String,而具体的转换过程由程序来实现,在这里默认使用全String的形式进行存储.

 

技巧

    a. 所有的表之间不存在任何数据库关联,只存在数据关联,即一个表中某个字段为另外一个表字段的值

    b. 部分内容如果包括的东西比较多的话,使用"-1;2,1,0,2;5,1,150,0,1,0,1,26,2,26,3,26,4,26,5,26,6,26;0"的形式进行存储.然后由程序进行分解转换,组合.这样在某些情况下可以简化数据库结构吧

 

2. 存储过程

    在本结构中所有数据库操作均以存储过程的形式进行访问.其中包括数据的查询,修改,删除等.

具体原因(猜测):

    a. 简化数据库访问时的代码,不至于在进行数据库访问的时候存在很多的SQL语句

    b. 使用存储过程可以对数据库操作进行一定的优化

    c. 在存储过程中实现一些简单的逻辑,简化程序的复杂度

    d. 提高性能

其它:

    可能有同学会觉得使用hibernate,ibatis,nutzDAO不是很方便吗?确实,使用这些都非常的方便,但是,性能上不够好,hibernate它会给你进行自动封装,如果再使用自动关联的话,那样就会损失很多的性能,所以,一般高性能要求的情况,个人建议还是不要这样使用.

 

3. 数据库表结构类

    前面说到在进行访问的时候是直接使用JDBC的形式进行访问,而非hibernate的方面,所以当进行一次查询的时候返回的是一个ResultSet,而要取到ResultSet内的内容,要么使用数字编号,要么使用列名,而数据库表结构类的作用就是实现这样的功能.

 

示例:

user表:

id,name

 

user_table类:

public static String id = "Id";

public static String name = "name"

 

4. 数据库访问

    在进行数据库访问的时候直接使用JDBC或是使用Spring自带的JdbcDaoSupport进行访问,以提供最大限度的速度.

 

5. 缓存

    数据库的操作在程序上永远是一个性能瓶颈,所以要想提交性能,那么使用缓存吧,然而,我们这里之所以使用缓存,除了性能的原因以外,还有另外一个原因,那就是构建关系,这一点下面会说到.

 

6. 组装器

    组装,关联数据,在数据库中存放的都是最原始的,没有任何关联的.而且是不能使用的数据,所以在这里引入这个组装器的概念,它的主要作用就是装从数据库中读取的内容进行重新组装,分解,关联,以使这些数据恢复成原来的结构.

主要职责:

    a. 进行类型转换,将string转换成int等其它类型

    b. 分解某些组合属性,将数据库中的String转换成List,array等其它类型

    c. 填充缓存

    d. 进行关联.将某个int性的属性通过其它实体的缓存获取到真实实体,然后进行关联.

技巧:

    在设计实体类的时候,如果有一个List,而要将它存放成String,那么就在实体中使用两个类型不一样的属性

分享到:
评论

相关推荐

    ormLite数据库缓存一对多、多级数据库表关联处理demo

    在这个“ormLite数据库缓存一对多、多级数据库表关联处理demo”中,我们将深入探讨ORMLite如何处理数据库的缓存机制,以及如何实现一对多和多级关联表的操作。 首先,ORMLite提供了强大的缓存功能,以提高数据读取...

    asp.net缓存sql数据库

    例如,获取数据库数据后,将其存储到缓存中,并关联一个键值,下次请求时先检查缓存是否存在该键值对应的数据显示。 3. **数据缓存**:使用`System.Web.Caching.SqlCacheDependency`类,可以创建与SQL Server数据库...

    缓存数据库redis

    redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多。技术博客http://blog.csdn.net/zcjfzcjf

    抽象工厂访问不同的数据库(反射+缓存)

    在数据库访问中,可能会缓存数据库连接或者预编译的SQL语句,以减少不必要的数据库交互。例如,可以使用ConcurrentHashMap来存储已创建的数据库连接,当需要新连接时,首先检查缓存中是否存在,如果存在则直接使用,...

    缓存依赖研究项目源码(包括数据库)

    2. 创建缓存依赖对象,与数据库表关联。 3. 将缓存依赖对象作为参数传递给缓存添加方法,确保当数据库表发生变化时,缓存项会被自动移除。 4. 在查询时,首先检查缓存中是否存在所需数据,如果存在,则直接返回;若...

    ASP.NET SQL数据缓存例子

    对于那些计算成本高或者数据库查询复杂的页面,输出缓存非常有用。在`WebSite4`项目中,可能会在Web.config文件中配置页面的输出缓存策略,或者在代码中使用`OutputCache`指令。 4. **SqlCacheDependency**:这是一...

    中科大_研究生_2020_高级数据库系统大作业_实验报告+源码

    学生被要求设计并实现一个数据库的缓冲管理系统,这通常是指在数据库系统中用于临时存储数据页的内存区域,以提高磁盘I/O效率。系统采用C++编程语言实现,这表明学生需要具备扎实的C++编程能力以及对数据库原理的...

    面试题 数据库缓存篇.pdf

    缓存通过存储查询结果来避免重复的数据库查询操作,减少了对磁盘的访问次数,从而降低响应时间和资源消耗。在面试中,数据库缓存是一个高频出现的考点,考察应聘者对数据库缓存机制、配置和优化的掌握程度。 首先,...

    一个下载歌曲播放 网络缓存 数据库录入 coreData 运用三方库的综合例子

    本项目"一个下载歌曲播放 网络缓存 数据库录入 coreData 运用三方库的综合例子"是一个很好的实战案例,涵盖了这些关键领域。下面将详细解析其中涉及的知识点。 1. **歌曲下载与播放** - **URLSession**: iOS系统...

    Sql缓存依赖示例

    当数据库中的特定表或特定行发生更改时,系统会自动清除与之关联的缓存,确保应用程序获取到最新的数据。 在创建Sql缓存依赖示例时,首先需要设置数据库环境。你需要在SQL Server中创建一个启用触发器的表,这个...

    主流数据库分类以及原理详解

    关系型数据库以表格形式存储数据,强调数据之间的关联性,如我们熟知的MySQL、Oracle和SQL Server等。它们遵循ACID(原子性、一致性、隔离性和持久性)原则,保证了数据操作的可靠性。 非关系型数据库则更灵活,不...

    CH7 数据库存储结构.rar_7CJ_YTR_数据库存储结构

    数据库存储结构是数据库管理系统(DBMS)中至关重要的组成部分,它决定了数据如何在磁盘或内存中组织,以及如何高效地访问和操作这些数据。在本资料“CH7 数据库存储结构”中,我们将深入探讨数据库的存储结构,主要...

    Hibernate一级缓存和二级缓存【内附二级缓存数据存储结构】

    不同的缓存提供商可能会有不同的实现方式,比如EhCache使用堆内和堆外存储,以及磁盘备份。堆内存储将缓存对象直接放在JVM堆内存中,适合小容量、高访问频率的数据;堆外存储则使用Off-Heap技术,避免了频繁的垃圾...

    深入挖掘ASP.NET 2.0系列课程(4):数据库的缓存管理与网站页面的缓存管理

    数据库缓存主要包括两种方式:查询缓存和对象缓存。查询缓存允许将SQL查询结果存储在缓存中,当相同的查询再次执行时,可以直接从缓存获取结果,而不需要重新执行SQL语句。对象缓存则是将数据库对象(如实体)存储在...

    数据库系统基础教程_数据库基础_数据库系统_数据库pdf_

    数据库系统是计算机科学中的核心组成部分,它用于存储、管理和检索数据。本教程“数据库系统基础教程”涵盖了数据库领域的基础知识,适合初学者入门学习。这里我们将深入探讨其中的关键概念和技术。 一、数据库基础...

    hibernate一级缓存和二级缓存的区别与联系

    Hibernate 是一个流行的对象关系映射(ORM)框架,它提供了数据缓存机制以优化数据库访问性能。缓存机制分为一级缓存和二级缓存,两者都有助于减少对物理数据库的直接访问,从而提高应用程序的运行效率。 一级缓存...

    数据库存储过程和触发器实验

    数据库存储过程和触发器是数据库管理系统中的重要组成部分,它们在数据操作和业务逻辑实现中扮演着关键角色。在这个实验中,我们将深入理解这两者的概念、功能以及如何在实际应用中运用。 **存储过程(Stored ...

    学生管理系统,使用数据库存储数据

    综上所述,"学生管理系统,使用数据库存储数据"这一项目涉及到数据库设计、操作、优化以及安全等多个方面,对于理解和掌握数据库技术及其在实际应用中的运用具有重要意义。通过对数据库的合理利用,可以构建一个高效...

    实时数据库和关系数据库的设计特点

    为此,实时数据库可以具备缓存数据的功能,在通信故障时先将数据保存到本地,之后再同步到数据库服务器。为提高可靠性,也可以设置多个实时数据库服务器以实现冗余。 关系数据库系统往往采用集群的方式来提高可靠...

    面向分布式数据库的自适应多级缓存机制分析.pdf

    面向分布式数据库的自适应多级缓存机制是解决大数据时代数据访问效率问题的重要策略。分布式数据库在处理海量数据时,由于数据分布在多个节点和场地,导致数据访问的延迟和网络开销增加,从而影响整体性能。传统的...

Global site tag (gtag.js) - Google Analytics