数据库知识扫盲,数据库索引[通俗易懂]

数据库知识扫盲,数据库索引[通俗易懂]1、存储引擎 早期存储引擎都是把数据库相关数据固化到磁盘的,在并发上每张表都是表锁, 后期的存储引擎(例如innodb,in-memory等)大多都是元数据在磁盘上,索引数据在内存中,在并发上每张表都

数据库知识扫盲,数据库索引

1、存储引擎
早期存储引擎都是把数据库相关数据固化到磁盘的,在并发上每张表都是表锁,
后期的存储引擎(例如innodb,in-memory等)大多都是元数据在磁盘上,索引数据在内存中,在并发上每张表都是行锁

2、磁盘型数据库索引
数据库如一本词典,存储很多数据,但要快速找到你需要查的词,就需要目录,在数据库中这个目录就叫索引,索引存的啥呢,
索引存的是被建索引字段的有序集合,并且每个字段都跟着一个数据的磁盘物理地址,有了索引表,如何查呢,在我们学习数据
结构与算法的时候,就接触到二叉树查找,那个时候就了解到树结构在查询上的优良性能,所以为了提高索引表的查询性能,索引
表数据是被存在树结构上的,SQL是b+树,MongoDB是b树,简单区别就是b+树数据存放在叶子节点,叶子节点上有横向指针,
这也就确定了SQL在范围查询上的优良性能,b树数据存放在各个节点,这就确定MongoDB在精准数据查询上的优良性能。
既然大致了解了索引结构,那索引是如何提升查询性能呢,索引树存在内存上,当你查询被索引数据时,数据库会遍历索引树,
匹配数据,找到数据磁盘物理地址,取出数据,这个过程因索引树参与数据匹配,会大大降低扫描的数据量,由此大大提升查询
性能,从这里我们能看出索引两大特点,有序集合和树结构。既然索引这么好,是不是应该给所有字段建立索引呢,其实非也,
索引会大大提升查询性能,但也会增加数据插入负担,因为每插入一条数据,所有相关索引要更新的,所以索引要查询量大的字段
上面,查询量不大想优化性能的要权衡增加的插入负担。常用的索引类型有三种,有序索引,hash索引,text索引,最常用的是
有序索引,就是上边讲的内容。复合索引是多字段索引,字段索引用途常为查询和排序,如果复合字段都为查询功能,则按照主次
建立索引即可,如果复合字段有查询也有排序,排序字段要放在查询字段前面建立索引。
索引性能调试有俩重要参数,毫秒数跟扫描量,具体参考以毫秒数为主,毫秒数和扫描量正相关,但毫秒数跟索引好坏不一定正相关,
这中间还牵涉到一个参数是数据量。

3、查询语法
关系型数据库大多遵循SQL语法规范,非关系型数据库语法各异。

4、存取性能
数据库按照存储位置分内存型数据库,磁盘型数据库。内存型数据库数据存在内存中,查询性能秒杀磁盘数据库。

5、数据库管理工具
这个因人而异,我个人比较喜欢Navicat,因为Navicat能连接各种数据库,并且交互比较友好,界面为中文。

6、数据库集群
每种数据库都有配置文件,一个配置文件启动一个数据库实例,集群就是配置多个数据库文件,可以分布在不同服务器上,
启动多个实例,建立主仆关系,主少从多, 集群一般为主写从读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5911.html

(0)
上一篇 2023-04-21 13:00
下一篇 2023-04-21

相关推荐

  • 提高用户粘性:Python实现的小技巧

    提高用户粘性:Python实现的小技巧个性化推荐是现今很多网站都在实践的一种方法,它可以帮助用户更快速地找到自己感兴趣的内容,并且增强用户对网站的粘性。Python中有很多机器学习库可以实现个性化推荐的算法,如Scikit-learn、TensorFlow等。其中,基于协同过滤的推荐算法比较常见。下面是一个协同过滤的推荐示例:

    2024-01-24
    52
  • Python Chdir:改变当前工作目录的方法

    Python Chdir:改变当前工作目录的方法Chdir是Python中提供的一个功能强大的方法,能够改变Python程序的工作目录。在Python中,每个正在运行的程序都有一个当前工作目录,即操作系统当前默认的工作目录。使用Chdir方法可以方便地改变程序的当前工作目录,便于进行文件的读写操作等。

    2024-04-06
    20
  • Python创建中心列表

    Python创建中心列表Python是一种简单、易学、功能强大的编程语言,它在数据处理、科学计算、Web开发等领域都有广泛的应用。在Python中,可以通过创建列表来存储一组有序的数据,这使得Python具有处理数据的优秀能力。

    2024-04-21
    15
  • 【赵强老师】什么是Spark SQL?[通俗易懂]

    【赵强老师】什么是Spark SQL?[通俗易懂]一、Spark SQL简介 Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。 为什么要学习Spark SQL?

    2023-03-17
    102
  • Pycharm安装库失败解决方法

    Pycharm安装库失败解决方法
    在使用Python开发过程中,我们经常需要通过Pycharm安装一些常用的第三方库。但是在安装过程中,不免会遇到一些问题,比如无法下载、安装语法报错等等,对我们的工作产生一定的阻碍。本文将会从多个方面详细介绍Pycharm安装库失败的解决方法,帮助读者解决这些常见问题。

    2024-04-25
    10
  • Python GUI开发:打造炫酷的用户界面

    Python GUI开发:打造炫酷的用户界面Graphical User Interface (GUI) 是一种让用户通过图像化方式进行交互的软件界面。在Python中,开发GUI可以使用多种库,比如TkInter,PyQt,wxPython等等。这篇文章将介绍如何使用TkInter库,在Python中打造炫酷的用户界面。

    2024-04-04
    17
  • lasso特征降维参数选择_高维数据流

    lasso特征降维参数选择_高维数据流海量数据的特征工程中, 如果数据特征维度达到几千乃至上万 常规的lasso很容易失效 这里介绍几种泛义lasso,是在实际数据处理中常用的 迭代与分块思路/分组的使用(有兴趣的同学可自行实践一下) 1

    2022-12-22
    94
  • 按8小时制计算的工作时长统计函数[通俗易懂]

    按8小时制计算的工作时长统计函数[通俗易懂]按8小时制计算的工作时长统计函数

    2023-04-22
    108

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注