`
ywu
  • 浏览: 457464 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

六、mysql优化技术-存储引擎选择

阅读更多

从本质上说,数据库就是数据的集合,具体到计算机上系统上,数据库可以是磁盘上一些文件的集合或者一些内存数据的集合。

常见的MySql登数据库,其实是数据库管理系统,它们可以存储数据,并提供查询和更新数据库中的数据的功能等,即帮助我们管理数据文件,而存储引擎说白了就是如何存储数据、如何为数据建立索引、如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。

mysql中可以使用show engines;命令查看服务器支持的存储引擎类型


可以看出,当前服务器默认的存储引擎是InnoDB,mysql5.5及以后版本默认的是InnoDB引擎,之前版本默认的是MyISAM存储引擎。

 

查看表使用的存储引擎


表使用的存储引擎是MyISAM,字符集是utf8

使用show table status命令也能查看表的存储引擎


 

存储引擎既能在创建表的时候指定,如

CREATE TABLE TABLE_NAME (
    COLUMN1 ...
) engine = engine_name;

 如果创建表时未指定存储引擎,则使用默认的存储引擎

也能在建完表后修改存储引擎,如

ALTER TABLE TABLE_NAME engine = engine_name;

 

各存储引擎比较

 

其中,最常用的存储引擎是MyISAM和InnoDB

MyISAM

MyISAM存储引擎访问速度快,但不支持事务,不支持外键约束,只支持表锁,对事务完整性没有要求或者以查询为主的数据库可以选择该存储引擎。MyISAM存储引擎会在data目录(默认为安装目录下的data目录,可在安装时指定)下生成三个文件,.frm(存储表定义)、MYD(MYData,存储数据)、MYI(MYIndex,存储索引)

 

InnoDB

InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全,支持行锁,但是相较于MyISAM存储引擎,InnoDB写的处理效率差一些,因为需要记录事务日志,并且会占用更多的磁盘空间以保留数据和索引。InnoDB是唯一支持外键的存储引擎,可以使用set foreign_key_checks=0;临时关闭外键约束,

set foreign_key_checks=1;打开约束。默认情况下,InnoDB存储引擎会在数据目录下生成以下文件


其中ibdata1文件存储数据和索引信息,而下面两个文件存储事务信息;ibdata1是所有表共享的,mysql还能通过设置innodb_file_per_table = 1使得每张表有自己独立的存储空间


test表的存储引擎为InnoDB


到数据目录下查看文件格式


data目录下每个数据库会有一个目录,dept、emp、salgrade表时MyISAM存储引擎,而student、test表是InnoDB存储引擎

 

此外还有一种存储引擎,BLACKHOLE,黑洞存储引擎,正如show engines;命令描述的,任何写入的东西都会消失,这种存储引擎在mysql的主从复制中架构中可能会使用到。

  • 大小: 77.2 KB
  • 大小: 18 KB
  • 大小: 11.1 KB
  • 大小: 11.5 KB
  • 大小: 3.3 KB
  • 大小: 4.9 KB
  • 大小: 6.3 KB
  • 大小: 10.5 KB
分享到:
评论

相关推荐

    mysql-community-server-8.4.0-1.el9.x86-64

    10. **性能优化**:此版本的MySQL支持InnoDB存储引擎的性能优化,如InnoDB Buffer Pool、索引优化、并行查询处理等,以提高数据读写速度和整体性能。 总之,`mysql-community-server-8.4.0-1.el9.x86_64`是为RHEL/...

    MYSql高级教程-存储引擎和SQL优化

    MySQL参数调优及数据库锁 MySQL常用工具日志及综合案例 存储引擎和SQL优化 数据库安装及数据库对象 最上层是一些客户端和...存储引擎层, 存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API和存储引擎进行

    MySQL-client-5.6.29-1.linux_glibc2.5.x86_64,MySQL-server-5.6.29-1.linux_glibc

    Hive通常会将元数据(例如表结构和分区信息)存储在关系数据库中,MySQL是一个常见的选择。集成MySQL可以提供高可用性和可扩展性,确保Hive的数据管理层面上的稳定性。 `Linux下的Mysql安装.doc`可能提供了在Linux...

    mysql-8.0.28-winx64.zip + mysql80-community-release-el7-5.noarch

    1. **性能优化**:包括更快的InnoDB引擎,支持更多的并发连接,并对查询优化器进行了改进。 2. **JSON支持**:增强了对JSON数据类型的处理能力,允许在关系数据库中存储非结构化数据。 3. **动态列**:在InnoDB表中...

    mysql-8.0.33-winx64.zip(mysql安装包)

    1. **InnoDB存储引擎增强**:InnoDB作为MySQL的默认存储引擎,得到了大量优化,包括更快的行锁定、更好的并发性能以及支持更大的表空间。 2. **JSON支持**:MySQL 8.0增强了对JSON数据类型的处理,提供了丰富的函数...

    mysql-5.5.27-win32

    1. **InnoDB存储引擎优化**:MySQL 5.5对InnoDB存储引擎进行了显著优化,包括支持更大的行内数据存储、更高的并发性以及更快的全文索引搜索。InnoDB是MySQL的默认事务处理引擎,适用于需要ACID(原子性、一致性、...

    mysql-installer-community-8.0.28.0 MySql数据库安装包

    1. **性能提升**:MySQL 8.0通过优化查询执行器、引入InnoDB存储引擎的改进以及更好的索引策略,提高了查询速度和整体系统性能。 2. **增强的数据类型**:添加了JSON数据类型,支持非结构化数据存储,使MySQL能够...

    mysql-installer-community-8.0.26.0.msi

    1. **InnoDB引擎优化**:InnoDB作为MySQL的默认存储引擎,在8.0版本中进行了大量的优化,包括更快的插入速度、更高的并发性和更小的内存占用。 2. **窗口函数**:MySQL 8.0引入了SQL标准的窗口函数,允许用户在分组...

    mysql-8.2.0-winx64-debug-test.zip

    1. **增强的InnoDB存储引擎**:InnoDB是MySQL默认的事务处理引擎,8.0版本中进行了优化,支持更大的行内存储,提高了并发性能,并引入了更好的崩溃恢复机制。 2. **窗口函数**:这是一组用于复杂分析查询的新SQL...

    mysql优化笔记+资料

    这些笔记涵盖了MySQL优化的主要方面,包括查询优化、SQL编写技巧、数据库设计、存储引擎选择、服务器配置、硬件升级、定期维护以及使用各种工具进行监控和调优。通过这些方法,你可以有效地提升MySQL数据库的运行...

    mysql-5.5.28资源文件(mysql-5.5.28-win32.msi)

    这个文件将帮助用户配置MySQL服务,包括设置root用户的密码、选择安装类型(如开发计算机、多用户服务器等)、指定数据存储目录等。 3. **Java驱动包**:`mysql-connector-java-5.1.0-bin.jar` 是MySQL的Java连接器...

    MySQL逻辑架构-存储引擎-用户权限密码详解

    MySQL作为广泛使用的开源关系型数据库管理系统,其逻辑架构的复杂性和灵活性为数据库管理员和技术开发者提供了丰富的管理手段和操作空间。下面详细解释文件中提到的知识点。 首先,MySQL的系统架构可以分为三个主要...

    mysql-installer-community-5.7.36.1

    - **InnoDB存储引擎**:5.7版提升了InnoDB的性能,包括更快的插入速度、更好的并行处理能力,以及对事务处理的支持。 - **查询优化器改进**:引入了Query Profiler,帮助用户分析和优化查询性能,同时增强了Cost-...

    mysql-5.5.61-winx64 \mysql-5.5.36-win32\mysql-essential-5.1.32-win32

    - 存储引擎:MySQL支持多种存储引擎,如InnoDB(默认,支持事务处理和外键)、MyISAM(快速但不支持事务)和Memory(数据存储在内存中,速度极快)等。 5. **安装与配置**: - 在Windows上安装MySQL,需要按照...

    mysql-5.5.40-winx64-msi

    - **InnoDB存储引擎增强**:InnoDB成为默认存储引擎,支持自动增长列类型、行级锁定和事务处理,提高了并发性能。 - **Full-text索引改进**:支持部分索引匹配和全文索引搜索优化,使得文本搜索更高效。 - **并行...

    mysql-installer-community-5.7.28.0.zip

    7. **InnoDB Plugin**:MySQL 5.7默认使用InnoDB存储引擎,提供了事务处理、行级锁定以及外键支持,确保了数据的安全性和一致性。 8. **JSON支持**:MySQL 5.7引入了对JSON数据类型的支持,允许在关系数据库中存储...

    mysql-cluster-8.0.20-winx64.zip

    5. **8.0.20版本特性**:此版本包含了MySQL 8.0的主要改进,如优化的InnoDB存储引擎,增强的JSON支持,新的SQL功能,以及性能和安全性的提升。 6. **安装与配置**:解压“mysql-cluster-8.0.20-winx64.zip”后,...

    mysql-installer-community-8.0.34.0.msi

    5. **优化的InnoDB存储引擎**:包括更快的索引插入、更高的内存利用率以及更有效的内存管理,使得InnoDB在处理大量并发事务时表现更出色。 6. **增强的监控和诊断**:提供了更丰富的性能指标和监控工具,如...

    mysql-8.0.26-winx64.zip

    - MySQL 8.0的查询优化器有了显著提升,能更准确地选择执行计划,提高查询效率。 总之,“mysql-8.0.26-winx64.zip”提供了在Windows环境下部署和使用MySQL 8.0.26所需的所有组件,涵盖了从安装、配置、使用到维护...

    mysql-connector-java-8.0.11

    - **InnoDB存储引擎改进**:包括更好的并发控制和故障恢复机制。 4. **使用步骤**: - 将`mysql-connector-java-8.0.11.jar`添加到项目的类路径中,可以是IDE的库依赖,或者在命令行运行时通过`-cp`选项指定。 -...

Global site tag (gtag.js) - Google Analytics