专栏首页我和PYTHON有个约会数据库连接引擎那点事儿

数据库连接引擎那点事儿

天长,地久。天地之所以能长且久者,以其不自生也,故能长生。是以圣人后其身而身先,外其身而身存,非以其无私邪?故能成其私。——老子

这里简单谈谈数据库连接引擎那点事儿

在数据库实际操作过程中,我们很少涉及到数据库引擎对象的事情,一般情况在创建数据库的时候都使用默认的InnoDB数据库引擎,那么到底什么是数据库引擎,有什么样的数据库引擎,在实际使用的过程中都有什么主意事项,为什么InnoDB作为默认的数据库引擎,都是我们需要特别注意但是不需要太多操作的问题!

1. 什么是数据库引擎

数据库引擎定义了数据库存储数据的数据结构特点,主要通过指定的数据库引擎对象来限制数据库操作数据不同方式的效率、锁和事务的支持、数据全文检索的支持、数据集的缓存操作等等特性。

2. 常见的数据库引擎

比较常见的数据库引擎对象主要有两种,一种是常见的InnoDB,另一种是很多人经常提到但是很少用到的MyIASM。 两种数据库引擎都是通过B+树实现了数据库中最重要的数据索引

3. 两种常见数据库引擎的区别和区分

3.1. INNODB引擎

InnoDB使用B+树完成数据库索引的实现,但是在数据存储时数据结构中存储的是实际数据,被称为聚集索引的东东,不支持全文检索,启动也是比较慢的。 InnoDB引擎支持ACID事务的支持,提供了行级锁和外键约束,设计目标是处理大容量数据库系统,处理过程中会在内存中建立数据库缓冲区用于缓存数据和索引数据。但是如果进行select count(*) from <table_name>时,会进行全表扫描,不会缓存扫描结果;同时在高并发的情况下,由于InnoDB引擎支持的锁的粒度较细,不会在写操作时全表锁定,有利于高并发下性能的提升。

3.2. MYIASM引擎

MyIASM使用B+树完成数据库索引的实现,但是在数据存储时数据结构中存储的是实际数据的地址,被称为非聚集索引,支持全文检索 MyIASM不支持事务操作,不支持行级锁和外键的约束;在进行select count(*) from <table>操作时会缓存数据,不会进行全表扫描。

3.3. 使用区分

如果我们的数据库存储大量数据,需要支持事务操作和外键约束,同时在出现故障需要快速恢复时,使用InnoDB引擎; 如果我们的数据库中需要大量而频繁的的insert语句操作时,可以选择MyIASM数据库引擎

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 33.企业级开发进阶6:数据库操作

    python作为一个编程语言,在开发B/S或者C/S结构的软件时,不可避免的会设计到和数据库之间的交互操作,和其他高级的面向对象的语言一样,Python在操作数...

    大牧莫邪
  • 09.程序编程基础3~组合数据类型

    python中为了方便一部分相似数据的处理,提供了各种组合类型,常见的如列表、元组 python中的列表是可变序列,元组是不可变序列

    大牧莫邪
  • 爬虫正传-江湖路远-0101-刀未佩妥,出门已是江湖

    小结:urllib2是Python2版本中专门用于进行网络数据请求访问的一个基础模块,包含了最基本的操作网络数据的各种类型和函数,如上述程序中访问新浪网并获取响...

    大牧莫邪
  • MySQL 概述

    数据库排名[1] https://db-engines.com/en/ranking

    技能锦囊
  • HAWQ技术解析(六) —— 定义对象

            HAWQ本质上是一个数据库系统,所以这里所说的对象指的是数据库对象。和其它关系数据库类似,HAWQ中有数据库、表空间、表、视图、自定义数据类型、...

    用户1148526
  • NetApp运维使用手册

        NetApp 系统为各种不同平台上的用户提供了对全部企业数据的无缝访问。NetApp全系列光纤网络存储系统在文件访问方面支持NFS 和CIFS,在块存储...

    loong576
  • flask 项目中蓝本的使用(flask 43)

    from flask import Blueprint admin_bp=Blueprint('admin',name)

    用户5760343
  • Shell下制作自解压安装包,实现脚本的简单加密

    一、原理阐述 在 linux 下可以用几个最基本的命令制作一个自解压的程序。其原理是:利用 cat 命令可以将两个文件连起来(用>>追加也能达到同样效果),前一...

    张戈
  • CentOS7安装Git2.19.2

    3.这个时候可能会因为找不到libiconv扩展包而出现安装错误,建议先安装libiconv扩展包。

    noobCoder
  • Python学习day01

    https://blog.csdn.net/PythonEnding/article/details/86325351

    py3study

扫码关注云+社区

领取腾讯云代金券