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

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

 
阅读更多

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

 

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

 

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

 

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

 

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

2
0
分享到:
评论

相关推荐

    数据库和PDM数据结构比较工具

    数据库是存储和管理数据的核心系统,它按照特定的结构组织数据,使得数据的存取、更新和查询变得高效。在IT行业中,Oracle数据库是广泛使用的大型企业级数据库管理系统,以其强大的性能、稳定性和安全性著称。另一...

    数据库+数据结构+计算机组成原理(毕业了,用的着的看看吧)

    在“数据库”这部分,你可能会学习到如何创建数据库,定义数据表结构,使用SQL进行查询、更新和删除操作,以及如何实现数据的安全性和完整性。此外,还会涉及数据库优化,如索引的使用、查询计划的分析等。在...

    学生信息数据库中的数据结构维护.pdf

    学生学籍、学历信息系统是一个庞大的系统,本文重点讨论的是学生信息数据库中数据结构的维护。 在维护学生信息数据库时,首先需要考虑数据的来源。由于学生信息数据库中的数据来源非常广泛,数据种类五花八门,数据...

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

    "数据库结构和数据对比工具" 提供了一种自动化的方式来比较和同步数据库的结构,这在数据库迁移、版本控制、数据整合等场景中尤为实用。 数据库结构对比工具的主要功能包括: 1. **分析差异**:这种工具能够深入...

    用友U9数据字典,数据库结构

    《用友U9数据字典:揭示数据库结构的奥秘》 在信息技术领域,数据库管理是企业信息系统的核心组成部分,它负责...无论是数据库管理员还是开发者,都应该充分利用数据字典这一宝贵的资源,实现对企业数据的精细化管理。

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

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

    数据库系统原理及应用 数据库系统原理 数据模型 数据库系统结构 关系数据库

    这涵盖了数据库的基本概念,数据模型,数据库系统结构,以及关系数据库等核心主题。 首先,数据是描述事物的符号记录,它是数据库中的基本元素。数据库(DB)是这些数据的有序集合,存储在计算机中,供多个用户共享...

    湖泊数据库数据结构详析.pdf

    在讨论湖泊数据库数据结构时,首先需要明确什么是湖泊数据库以及其在湖泊科学研究中的重要性。湖泊数据库是专门为湖泊科学定量化研究、宏观决策分析提供基础数据的存储和管理系统。数据库中存储了大量有关湖泊的各类...

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

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

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

    而数据对比工具则是一种实用的辅助工具,用于比较不同数据库之间的结构差异和数据差异,确保数据的一致性和完整性。 数据库结构主要包括以下部分: 1. 表(Table):数据库中的基本单位,由一系列行和列组成,列...

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

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

    数据库代码大全(源代码大全数据结构)

    《数据库代码大全(源代码大全数据结构)》这个资源显然提供了丰富的数据库编程实践,涵盖了数据结构的经典程序解析,这些都是数据库开发的基础。以下将深入探讨其中可能包含的知识点。 首先,我们要明白数据结构是...

    数据库原理 数据模型概述

    数据结构是对计算机的数据组织方式和数据之间的联系进行框架性描述的集合,是对数据库静态特性的描述。例如,学生(姓名、性别、出生日期、籍贯、所在系别、入学日期)就是一种数据结构。数据结构是刻画一个数据模型...

    C#根据数据库数据画数据曲线

    在C#编程中,根据数据库数据画数据曲线是一项常见的任务,尤其在数据分析、可视化和仪表板应用中。在这个场景中,我们使用C#语言结合Access数据库来动态获取数据,并实现在用户界面控件上实时展示数据变化的曲线图。...

    linux下导入导出mysql数据库及其导出数据命令大汇总

    在 Linux 下,我们可以使用 mysqldump 命令来导出 MySQL 数据库中的表结构和数据。基本语法如下: ```sql mysqldump -u 用户名 -p密码 目标数据库 > 导出数据库的名称 ``` 例如,要导出目标数据库 `VSMNG` 中的表...

    HIS数据库表结构.doc

    某医院HIS系统的数据库表结构。如果需要了解HIS相关表结构的,可以下载了解。

    数据库结构和数据对比工具(MSSQL)

    数据库结构和数据对比工具在IT领域中扮演着重要的角色,特别是在数据库管理、迁移和整合过程中。MSSQL,全称Microsoft SQL Server,是微软公司推出的一款关系型数据库管理系统,广泛应用于企业级的数据存储和处理。...

    redmine的数据结构图

    公司需要对redmine进行二次开发;自己用了近一天时间进行数据库的梳理;并且转换成数据结构图;你二次开发redmine的利器值得拥有

    数据结构 数据结构 数据结构 数据结构 数据结构

    数据结构是计算机科学中的核心概念,它涉及到如何在计算机中有效地组织、存储和处理大量数据。...在软件开发、数据库设计、操作系统、网络等领域,数据结构的应用无处不在,是每个IT专业人士必须掌握的基本技能。

    数据库 第三讲 数据库系统的结构.pdf

    数据库管理系统(Database ...大部分DBMS提供数据定义语言DDL(Data Definition Language)和数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。

Global site tag (gtag.js) - Google Analytics