热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

mysql如何优化存储_六、mysql优化技术存储引擎选择

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

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

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

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

1e2838610162a6772f566f1ebdbac945.png

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

查看表使用的存储引擎

83ad3d6b341241ea87e8b7b6b3d5c9a4.png

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

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

cffe29cea97990199ba9f5f01fe58269.png

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

CREATE TABLE TABLE_NAME (

COLUMN1 ...

) engine = engine_name;

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

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

ALTER TABLE TABLE_NAME engine = engine_name;

各存储引擎比较

11e6ab32071f30c8f195bfd10c695d5e.png

其中,最常用的存储引擎是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存储引擎会在数据目录下生成以下文件

8f735cba5643479839d2ec27cdadb4fd.png

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

26a5f9dd54137520a1eeb6902b22a1ea.png

test表的存储引擎为InnoDB

47db4a55a8fe5670d0aab9d5afdf90a9.png

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

53507766b3da818e3defc10d36d9a631.png

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

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



推荐阅读
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 前言无论是对于刚入行工作还是已经工作几年的java开发者来说,面试求职始终是你需要直面的一件事情。首先梳理自己的知识体系,针对性准备,会有事半功倍的效果。我们往往会把重点放在技术上 ... [详细]
  • 为何我选择了华为云GaussDB数据库
    本文分享了作者选择华为云GaussDB数据库的理由,详细介绍了GaussDB(for MySQL)的技术特性和优势,以及它在金融和互联网行业的应用场景。 ... [详细]
  • 本文详细介绍了如何正确配置Java环境变量PATH,以确保JDK安装完成后能够正常运行。文章不仅涵盖了基本的环境变量设置步骤,还提供了针对不同操作系统下的具体操作指南。 ... [详细]
  • MySQL Debug 模式的实现与应用
    本文详细介绍了如何启用和使用 MySQL 的调试模式,包括编译选项、环境变量配置以及调试信息的解析。通过实际案例展示了如何利用调试模式解决客户端无法连接服务器的问题。 ... [详细]
  • 深入解析Hadoop的核心组件与工作原理
    本文详细介绍了Hadoop的三大核心组件:分布式文件系统HDFS、资源管理器YARN和分布式计算框架MapReduce。通过分析这些组件的工作机制,帮助读者更好地理解Hadoop的架构及其在大数据处理中的应用。 ... [详细]
  • 如何从python读取sql[mysql基础教程]
    从python读取sql的方法:1、利用python内置的open函数读入sql文件;2、利用第三方库pymysql中的connect函数连接mysql服务器;3、利用第三方库pa ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • MySQL锁机制详解
    本文深入探讨了MySQL中的锁机制,包括表级锁、行级锁以及元数据锁,通过实例详细解释了各种锁的工作原理及其应用场景。同时,文章还介绍了如何通过锁来优化数据库性能,避免常见的并发问题。 ... [详细]
  • 本文探讨了大型服务端开发过程中常见的几个误区,包括异步任务处理不当、日志同步模式使用、网络操作未设置超时、缓存命中率及响应时间未统计、单一缓存模式、分布式缓存加锁不当以及团队管理上的误区,旨在帮助开发者避免这些常见错误。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • 最新计算机专业原创毕业设计参考选题都有源码+数据库是近期作品ling取参考你的选题刚好在下面有,有时间看到机会给您发1ssm资源循环利用2springboot校园考勤系统3ssm防 ... [详细]
  • 深入解析BookKeeper的设计与应用场景
    本文介绍了由Yahoo在2009年开发并于2011年开源的BookKeeper技术。BookKeeper是一种高效且可靠的日志流存储解决方案,广泛应用于需要高性能和强数据持久性的场景。 ... [详细]
  • Eclipse 中 JSP 开发环境配置指南
    本文详细介绍了如何在 Eclipse 集成开发环境中配置 JSP 运行环境,包括必要的软件下载、Tomcat 服务器的配置以及常见问题的解决方法。 ... [详细]
  • HTTPS与TLS/SSL协议详解:握手及记录协议
    HTTPS,即HTTP over TLS/SSL,通过在HTTP通信层引入安全协议,确保数据传输的安全性。本文将深入探讨TLS/SSL协议的基本概念、HTTPS的必要性,以及TLS握手和记录协议的工作原理。 ... [详细]
author-avatar
娟儿2502923263
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有