首页 > 数据库 >MySQL体系结构及存储引擎

MySQL体系结构及存储引擎

时间:2024-08-08 23:52:51浏览次数:16  
标签:存储 xxx 支持 引擎 InnoDB MyISAM MySQL 体系结构

一、MySQL体系结构

二、存储引擎

        存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。不同的表可以指定不同的存储引擎。默认为InnoDB。

--查询建表语句
show create table [表名];

--查询当前数据库支持的存储引擎
show engines;

--例子:指定存储引擎MyISAM
create table my_myisam(
    id int,
    name vachar(10)
) engine = MyISAM;

三、存储引擎特点

  1. InnoDB

介绍:

        InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在MySQL5.5之后,InnoDB为默认的MySQL存储引擎。

特点:

  • DML(增删改)操作遵循ACID模型,支持事务;
  • 行级锁,提高并发访问性能;
  • 支持外键Foreign key 约束,保证数据的完整性和正确性;

文件:

  • xxx.ibd: xxx代表表名,InnoDB引擎的每张表都会对应这样的一个表空间文件,存储该表的表结构、数据和索引。
  • 参数:innodb_file_per_table MySQL8.0默认打开,即每张表对应一个表空间文件
--查询参数
show variables like 'innodb_file_per_table';

逻辑存储结构:

        区的大小固定为1M,页的固定大小为16K。

2.MyISAM

介绍:

        MyISAM是MySQL早期的默认存储引擎。

特点:

  • 不支持事务,不支持外键;
  • 支持表锁,不支持行锁;
  • 访问速度块;

文件:

  • xxx.sdi: 存储表结构信息
  • xxx.MYD: 存储数据
  • xxx.MYI:存储索引
3.Memery

介绍:

        Memory引擎的表数据是存放在内存中的,由于受到硬件问题、或者断电等影响,只能把这些表作为临时表或者缓存使用。

特点:

  • 内存存放;
  • hash索引(默认);

文件:

  • xxx.sdi:存储表结构。
4.对比
特点InnoDBMyISAMMemory
内存限制64TB
事务安全支持-

-

锁机制行锁表锁表锁
B+树索引支持支持支持
Hash索引---
全文索引支持(5.6版本之后)支持-
空间使用N/A
内存使用中等
批量插入速度
支持外键支持--

四、存储引擎的选择

        在选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎。对于复杂的引用系统,还可以根据实际情况选择多种存储引擎进行组合使用。

  • InnoDB:是MySQL默认的存储引擎,支持事务、外键。如果应用对于事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还有很多更新、删除操作,那使用InnoDB是比较合适的选择。
  • MyISAM:如果应用是以读操作和插入操作为主,只有很少的更新、删除操作,并且对事务的完整性、并发性要求不是很高,那么选择MyISAM是非常合适的。(MongoDB可替代)
  • MEMORY:将数据存放在内存中,访问速度快,通常用于临时表和缓存。MEMORY的缺陷是对于表的大小有限制,太大的表无法缓存在内存中,而且无法保障数据的安全性。(Redis可替代)

标签:存储,xxx,支持,引擎,InnoDB,MyISAM,MySQL,体系结构
From: https://blog.csdn.net/qq_56738192/article/details/141002545

相关文章

  • MySQL:修改数据库密码及开启外部访问数据库
    修改数据库密码cd到数据库bin路径下mysql.exe-uroot-p登录成功ALTERUSER'root'@'localhost'IDENTIFIEDBY'123456';再打开一个cmd重新登陆mysql.exe-uroot-p登录成功开启外部访问数据库回到上层路径找到my.ini将内容bind-address行注释掉或者改成0.0.0.0......
  • MySQL4多表查询 内连接
    多表查询数据准备CREATEDATABASEdb4;USEdb4;--创建部门表createtableifnotexistsdept(deptnovarchar(20)primarykey,--部门号namevarchar(20)--部门名字);--创建员工表createtableifnotexistsemp(eidvarchar(20)primarykey......
  • 【mysql随机获取3条不重复数据】最佳实践
    需求:从商品库中随机获取3个不重复的商品,推荐给用户。假设product表数据为10000行。方案一【最佳实际】1.mysql数据库中获取所有商品数据的IDselectidfromproduct;2.通过Java获取随机3个商品ID//假设List中存的为上述数据库ID值List<Integer>productIdList=newA......
  • Mysql:初始化
    免费的社区版下载地址:https://dev.mysql.com/downloads/mysql 下载mysql.zip包,直接解压cdmysql-8.0.28-winx64新增my.ini文件[mysql]default-character-set=utf8#默认字符集[mysqld]port=3306#端口basedir=D:/XXX/mysql-8.0.28-winx64#修改成实......
  • mysql系列之事务(三)
    1.为什么需要事务首先我们要知道什么是事务:事务(Transaction)是‌数据库系统中执行的一个工作单位,它是由用户定义的一组操作序列。一个事务可以是一组‌SQL语句、一条SQL语句或整个程序,一个应用程序可以包括多个事务。通俗易懂来说就是,我们在执行一个操作时,要保证要么都成......
  • mysql在软件实施中常用到的语句
    MySQL在软件实施中常用到的语句非常广泛,涵盖了数据定义(DDL)、数据操纵(DML)、数据查询(DQL)和数据控制(DCL)等多个方面。以下是一些常用的MySQL语句及其用途,这里列举了一部分:1.数据定义语言(DDL)创建数据库CREATEDATABASE数据库名称;//创建一个新的数据库。CREATEDATABASEI......
  • 用Python简单操作MySQL!轻松实现数据读写
    PyMySQL是Python编程语言中的一个第三方模块,它可以让Python程序连接到MySQL数据库并进行数据操作。它的使用非常简单,只需要安装PyMySQL模块,然后按照一定的步骤连接到MySQL数据库即可。本文将介绍PyMySQL的安装、连接MySQL数据库、创建表、插入数据、查询数据、更新数据和删除数据......
  • MySQL高级——MySQL储存引擎
    一、概念1)数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。2)不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是存储引擎。3)用户可......
  • MySQL——数据库的设计、事务、视图
    文章目录数据库的设计1.多表之间的关系2.实现关系3.数据库设计的范式事务1.事务的基本介绍2.事务的四大特征ACID3.事务的隔离级别(了解即可)视图1.什么是视图?2.视图创建及使用方法3.注意事项4.为什么使用视图数据库的设计1.多表之间的关系一对一(了解)如:人和身份证......
  • 金蝶云星空每日库存信息存储到《历史库存信息》
     方案设计每日凌晨获取当前即时库存明细的库存作为昨日的库存结余记录下来。  详细设计创建存储过程CREATEPROCXXXX_P_STK_HisInventoryInfoASBEGININSERTINTOXXXX_T_STK_HisInventory(FID,F_XXXX_Date,FBILLNO,FDOCUMENTSTATUS,F_XXXX_StockOrgId,F_XX......