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

数据库,终究还是数据结构

 
阅读更多

好久不写博客了,也是ITEYE最近的首页文章实在太水,来逛的少。最近在看淘宝沈询的博客文章,讲数据库方面的理论和实践,科普性的小文,有时来点小幽默,看起来蛮轻松。微博上也大概录了二十条笔记,现在满脑子各类数据结构的特性,如范围查找、读写性能、是否面向磁盘结构、并行指标、内存占用。像把大学时学的不怎么好的数据结构重新捡起了理了一遍,当时觉得这一大坨各种烦人还绕人的数据结构究竟有啥用(其实现在工作中用到的也就有限的几种,包括算法也是,做行业业务软件的重点还是在梳理业务),现在才知道大用场在这里,IT系统的基石还是这些东东。拿数据库来说,因为无数前辈们的智慧能够将底层巨复杂的东东抽象成你所需要了解的SQL语言就可以应付一般的单机数据库日常使用需要。

 

数据库底层的核心,其实就是映射(mapping),也就是一大堆的key-value。针对这些映射数据,其实做的就是两件事:读和写。不断的读,不断的写,交叉的读和写,这些就是数据库需要做的事情。但只这么说的话其实懂点计算机语言的都能写个小数据库出来,但一般除了写的人自己没人用{#emotions_dlg.tongue_out},为什么?当然是性能。

 

SQL语言可以看作是一个数据库供使用时的操作指令,但如果你的数据库读/写时很慢,比其它产品慢(不拿商业的就拿开源的比)那鬼才用你,当然以国内的环境说不定某些高校中倒会发生这种奇葩事情。但说到慢肯定不会一开始就慢(不然这鸟代码写的得多烂),一般都会达到某种限制之后才会出现,比如并发读,已经存有大量数据时的写,如何保证事务等等,这时才是拼产品真正实力的时候。针对各种不同的问题场景,出现了不同的解决方案,比如要快速查找数据,用有序数组存储,其二分查找的时间复杂度大概是O(log2N)。用平衡二叉树可以支持数据自动扩展,让树能够在保持有序的前提下尽可能平衡。要并行度高的话可以用跳表,要面向磁盘结构的话可以试试B树、LSM Tree。但又没有一种数据结构能包打天下?答案是没有,没有一种能够解决所有的问题,实际更多是在各种权衡和妥协中找到一个平衡点。

 

正如作者所言“在目前的硬件体系下,写的快的一般查询都慢,查询的条件支持丰富的基本上写的都慢,好不容易弄个系统写的也快查的也挺快的机器消耗就大了。市面上的大部分的数据库系统,主要做的事情就是把数据在上面这两类数据库中倒来倒去,以期望于满足更多应用的需求场景,代价嘛就是代码非常复杂。”

 

现实就是容易理解的模型往往性能都不好,性能好的模型往往不容易理解,所以数据库,终究还是数据结构。。。

2
0
分享到:
评论

相关推荐

    管家婆数据库表数据结构.doc

    《管家婆数据库表数据结构详解》 在企业管理中,数据是至关重要的,而数据库就是存储这些数据的核心。本文将深入解析“管家婆”这款管理软件的数据库表数据结构,帮助用户更好地理解和运用这款软件。 首先,我们要...

    数据库是按照数据结构来组织

    ### 数据库概述与数据结构的重要性 #### 数据库的概念与特性 数据库是指长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据集合。这一定义突出了数据库几个核心特征:持久性(长期存储)、组织性...

    数据库课件\数据结构课件\数据结构9.ppt

    数据库课件\数据结构课件\数据结构9.ppt

    PDB数据库中查找蛋白质结构数据.doc

    PDB数据库中查找蛋白质结构数据 PDB(Protein Data Bank)数据库是蛋白质结构数据的主要来源,是生物信息学和结构生物学研究的重要资源。本文档将指导您如何在PDB数据库中查找蛋白质结构数据,并对其进行在线观看和...

    内存数据库数据的组织结构优化

    总结来说,内存数据库数据的组织结构优化是提高内存数据库性能的核心环节。它涉及到了合理选择和设计数据结构(如红黑树)、优化数据在内存中的存储布局、考虑数据的读写模式和频率、以及结合操作系统的内存管理机制...

    数据库表结构和数据对比工具

    数据库表结构和数据对比工具是IT领域中用于管理和优化数据库不可或缺的一部分。这些工具的主要功能是对两个或多个数据库实例之间的表结构和数据进行比较,以便识别差异、同步更新或进行审计。在SQL环境中,这种对比...

    数据库课件--数据库结构

    在数据库结构中,数据的逻辑结构和物理结构是两个关键概念。逻辑结构是用户看到和使用的数据视图,包括数据类型、字段、记录等;物理结构则是数据在磁盘或内存中的实际存储方式,如B树、哈希表等。这两者之间的映射...

    数据结构_数据库课程设计—飞机订票系统源码+数据库.zip

    数据结构_数据库课程设计—飞机订票系统源码+数据库+部署文档。已获通过的高分项目。 frontend为前端 backend为后端, 数据结构_数据库课程设计—飞机订票系统源码+数据库+部署文档。已获通过的高分项目。 frontend...

    中科大数据结构、数据库和操作系统课件

    中科大校内资源,数据结构、数据库、操作系统 精品课件。和大家分享。

    PowerDesigner从数据库中导出表结构.doc

    * 数据 Reverse Engineering:可以使用PowerDesigner从Oracle数据库中导出表结构,然后进行数据Reverse Engineering,以便更好地理解数据库结构和数据关系。 PowerDesigner从Oracle数据库中导出表结构需要遵循一定...

    c语言版数据库结构c语言版数据库结构c语言版数据库结构

    数据库结构是任何数据库管理系统的核心,它涉及到数据的组织、存储和检索方式。 在C语言中实现数据库结构,首先需要理解基本的数据结构概念,如数组、链表、栈、队列、树和图等。这些数据结构是构建高效数据库的...

    PowerDesigner从数据库中导出表结构

    ### PowerDesigner从数据库中导出表结构 ...通过上述步骤,用户可以顺利地使用PowerDesigner从现有的数据库中导出表结构,并进一步进行数据分析和模型优化等工作。这对于加快项目进度、减少开发成本具有重要意义。

    数据库结构和数据对比工具.zip

    数据库数据对比工具:可以针对两个数据进行表结构和数据的对比。1、结构对比:如开发库和正式库之间的结构和数据同步,此工具可以告诉您哪个表结构有字段的增加减少,或者字段类型的改变,并生成sql进行结构的同步。...

    内网测试数据库数据结构

    内网测试数据库数据结构

    数据库系统工程师考试试题分类精解(2.数据结构与算法)

    数据库系统工程师考试试题分类精解(2.数据结构与算法),含知识点、往年试题及试题精解

    南师大GIS考研真题试题2010(地信原理、数据结构、数据库)

    南京师范大学GIS(地理信息系统)考研真题是针对2010年入学考试的,涵盖了地信原理、数据结构以及数据库这三个关键领域。这些主题在GIS专业学习和研究中具有核心地位,对于理解地理信息的采集、处理、分析及应用至关...

    南京师范大学数据结构和数据库系统考研真题2018

    南京师范大学2018考研真题包括数据结构和数据库系统两门,从网上买的自己截图制作出PDF方便打印。

    java多个数据库实现数据同步

    综上所述,Java实现多数据库数据同步是一个涉及多种技术和策略的复杂问题,需要根据具体业务需求和系统架构来选择合适的方法。在实践中,应注重设计的灵活性、可扩展性和容错性,以保证系统的稳定运行。

    LIS数据库表结构

    我也是在网上找到的,搬到了这里. 如果有好的表结构的资源,可以Q我,大家一起学习交流. 我也是在不断的探索中~

    数据结构应用性试验-数据库管理系统

    在“数据结构应用性试验-数据库管理系统”中,我们将深入探讨如何利用数据结构来优化数据库管理系统的性能。 首先,数据结构的选择直接影响到数据库的查询效率。例如,B树和B+树常用于数据库索引,因为它们支持快速...

Global site tag (gtag.js) - Google Analytics