热门标签 | 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的主从复制中架构中可能会使用到。



推荐阅读
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • GAMETECH腾讯云游戏行业技术沙龙成都站圆满落幕
    11月13日,由腾讯云主办、游戏茶馆协办的2020年首场GAME-TECH腾讯云游戏行业技术沙龙在成都圆满落幕。本次沙龙邀请了腾讯云游戏行业解决方案总监宋永周、腾讯云游戏行业高级解决方案架构师曾梓恩、腾讯云游戏行业高级产品架构师郑晓曦、腾讯云游戏行业高级解决方案架构师温球良和天美L1(王者荣耀)服务器技术副总监杨光,为参会同行们带来了干货满满的技术建议。本文介绍了腾讯云游戏云的优势和为不同游戏研运场景提供的服务。腾讯云在中国游戏云服务市场领跑,成为众多游戏开发者的合作伙伴。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
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社区 版权所有