9.4 表的介绍

存储引擎

数据的存储方式就是存储引擎,引擎不同,数据的存储方式就不同

MySQL中比较重要的引擎:

InnoDB:mysql5.6以上,默认的存储方式

​ 支持 transaction 事务;row-level locking 行级锁;table-level locking 表级锁;foreign keys外键约束

​ 基于树的检索,(数据+树)+表结构 = 2张表

​ 在硬盘中表结构的文件后缀为 .frm 数据树为 .ibd

【transaction事务】里面的操作,要么一起成功,要么一起失败;保证数据安全;它具备提交、回滚以及崩溃恢复的功能以保护用户数据

【row-level locking】 行级锁:对行上说涉及的行数比较少且较分散时使用比较好

【able-level locking】  表级锁:当涉及的行数比较多时

【树tree结构】加速数据检索
【应用】
用于事务处理应用程序,支持外键和行级锁。如果应用对事物的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包括很多更新和删除操作,那么InnoDB存储引擎是比较合适的。InnoDB除了有效的降低由删除和更新导致的锁定,还可以确保事务的完整提交和回滚,对于类似计费系统或者财务系统等对数据准确要求性比较高的系统都是合适的选择。

MEMORY:基于hash检索

​ 硬盘中存表结构+内存中存数据

​ 硬盘中表结构 .frm

【特点】
在内存中存储所有数据,应用于对 非关键数据 由快速查找的场景。Memory类型的表访问数据非常快,因为它的数据是存放在内存中的,并且默认使用HASH索引,但是一旦服务关闭,表中的数据就会丢失
【应用】
将所有的数据保存在内存中,在需要快速定位记录和其他类似数据的环境下,可以提供极快的访问。Memory的缺陷是对表的大小有限制,虽然数据库因为异常终止的话数据可以正常恢复,但是一旦数据库关闭,存储在内存中的数据都会丢失。

MyISAM:mysql5.5以下,默认的存储方式

​ table-level locking 表级锁

​ 基于树的检索;树结构+数据+表结构 = 3张表

​ 硬盘中存放树结构的文件 .frm 数据 .MYD 表结构 .MYI

【特点】
MyISAM既不支持事务、也不支持外键、其优势是访问速度快,但是表级别的锁定限制了它在读写负载方面的性能,因此它经常应用于只读或者以读为主的数据场景。
【应用】
如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性、并发性要求不高,那么可以选择这个存储引擎。

相对于myisam,innodb支持并发,以及修改删除的操作效率比较高。

有关引擎的sql语句:

# 查看数据库中有哪些存储引擎
show engines; # 查看当前默认的存储引擎
show variables like "default_storage_engine"; # 建表时指定存储引擎
create table 表名 (字段名...) engine = 引擎名;

在配置文件中设置默认存储引擎

[mysqld]下
default-storage-engine=INNODB

MySQL的工作流程

文章参考:https://www.cnblogs.com/Eva-J/p/7277026.html

Python学习之表的介绍的更多相关文章

  1. Python学习2-列表和元组

    Python学习2-列表和元组 标签(空格分隔): 列表 元组 在Python中,最基本的数据结构是序列(sequence).序列中的每个元素被分配一个序号--即元素的位置,也称为索引.索引从0开始. ...

  2. python学习第二讲,pythonIDE介绍以及配置使用

    目录 python学习第二讲,pythonIDE介绍以及配置使用 一丶集成开发环境IDE简介,以及配置 1.简介 2.PyCharm 介绍 3.pycharm 的安装 二丶IDE 开发Python,以 ...

  3. python学习day3------列表、元组、字符串操作

    一.列表 变量名后加中括号[],接下来介绍对列表进行查操作 #!/usr/bin/env python #-*- Coding:utf-8 -*- # Author:Eric.Shen test = ...

  4. python学习Day10 函数的介绍(定义、组成、使用)

    今日学习内容: 1.什么是函数 :函数就是一个含有特定功能的变量,一个解决某问题的工具 函数的定义:通过关键字def + 功能名字():代码体(根据需求撰写代码逻辑) 2.为什么要用函数:可以复用:函 ...

  5. Python学习--Selenium模块简单介绍(1)

    简介及运行流程 Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Mozi ...

  6. python学习-1 编程语言的介绍

    1.开发语言: 高级语言:Java.python.C#.PHP.Go.ruby.C++等等 低级语言:C.汇编语言 2.机器码和字节码 高级语言 ====>字节码 低级语言===>机器码 ...

  7. Python学习之表的数据类型

    数据类型 数值类型 类型 大小 范围(有符号) 范围(无符号)unsigned约束 用途 TINYINT 1 字节 (-128,127) (0,255) 小整数值 SMALLINT 2 字节 (-32 ...

  8. python学习-Day39-HTML-form表单

    目录 HTML-form表单 form表单 属性action input标签(输入元素) 文本域(Text Fields) 密码字段 单选按钮(Radio Buttons) 复选框(Checkboxe ...

  9. python学习1---列表、矩阵、数组

    1.列表与数组区别 numpy数组的所有元素类型是相同的,而列表的元素类型是任意的. 2.numpy数组与矩阵区别 矩阵必须是二维的,数组可以是多维的,matrix是array的一个分支. matri ...

随机推荐

  1. 添加了两个IP

    //第一步:添加了两个IP root@default:~# ifconfig eth1:0 192.168.99.10 netmask 255.255.255.0 up root@default:~# ...

  2. POJ3415Common Substrings(后缀自动机)

    A substring of a string T is defined as:                 T( i, k)= TiTi +1... Ti+k -1, 1≤ i≤ i+k-1≤| ...

  3. BZOJ1787 [Ahoi2008]Meet 紧急集合[结论题]

    location. 求到树上三点距离和最短的点及此距离. 这个不还是分类讨论题么,分两类大情况,如下图. 于是乎发现三个点对的lca中较深的那个lca是答案点.距离就是两两点对距离加起来除以2即可.这 ...

  4. 前端_DOM&BOM

    前端BOM BOM:浏览器对象模型 window alert:弹出信息框 alert('String') // 或者 Window.alert("String") confirm: ...

  5. Spring整合MongoDB(转)

    1.认识Spring Data MongoDB 之前还的确不知道Spring连集成Nosql的东西都实现了,还以为自己又要手动封装一个操作MongoDB的API呢,结果就发现了Spring Data ...

  6. MySQL内联和外联查询

    内连: 内连接是通过在查询中设置连接条件的方式,来移除查询结果集中某些数据行后的交叉连接.简单来说,就是利用条件表达式来消除交叉连接的某些数据行. 在MySQL FROM 子句中使用关键字 INNER ...

  7. http学习--常用请求方法和响应状态码

    常用的http请求方法: GET方法:请求服务器资源,并返回 POST方法:向指定资源提交数据进行处理请求(比如说表单,上传文件等).数据被包含在请求体中.POST请求可能会导致新的资源建立或已有资源 ...

  8. Harbor ($docker login) Error saving credentials

    $ sudo apt-get install $ sudo apt-get install gnupg2 pass 问题解决!

  9. jquery isDefaultPrevented()方法 语法

    jquery isDefaultPrevented()方法 语法 作用:isDefaultPrevented() 方法返回指定的 event 对象上是否调用了 preventDefault() 方法. ...

  10. python 数据库更新操作

    数据库更新操作 更新操作用于更新数据表的的数据,以下实例将 EMPLOYEE 表中的 SEX 字段为 'M' 的 AGE 字段递增 1: #!/usr/bin/python # -*- coding: ...