首页 > 数据库 >mysql 存储引擎和索引

mysql 存储引擎和索引

时间:2023-05-17 13:55:29浏览次数:37  
标签:文件 存储 frm 索引 引擎 mysql 主键

存储引擎

引擎 特性 文件
InnoDB 默认,支持事务,支持外键,支持行锁和表锁 .frm 文件存储表结构
.ibd 文件存储数据和索引
MyISAM 不支持事务,不支持外键,只支持表锁不支持行锁
专门维护了一个常量保存每个表的总记录数(count 很快)
MyISAM 强调的是性能,所以性能上优于InnoDB,但安全性和并发性较低
.frm 文件存储表结构
.MYD 文件存储数据
.MYI 文件存储索引
Memory 数据存在内存中,所以性能上来看是最好的,缺点也很明显,一旦宕机数据就没了 只有表结构文件(只有 frm 文件)

索引

索引是一种数据结构,目的是提高检索数据的效率,减少磁盘I/O,也是一个文件存放在磁盘中(Memery 这种引擎数据都在内存中,索引也不可能有实质的文件了)
有利有弊,索引也是需要维护的,所以索引越多维护的成本也增大

按照不同的规则可以划分出不同的类型,比如按照字段个数:单列索引,复合索引;是否主键:主键索引,非主键索引。按照索引的数据结构上又能分为:聚簇索引和非聚簇索引

InnoDB 聚簇索引

标签:文件,存储,frm,索引,引擎,mysql,主键
From: https://www.cnblogs.com/hangychn/p/17408529.html

相关文章

  • SqlServer查询存储过程和视图是否用到表字段
     查询存储过程视图是否用到表和字段selectnamefromsysobjectsassinnerjoinsyscommentsasoons.id=o.idwheretextlikeN'%表名%字段名%'--查询表字段SELECTOBJECT_NAME(object_id)'表名',nameAS'列名称'FROMsys.columns......
  • 文章索引
    本文用于对笔者所有博客的索引PS:点击文章名字可以跳转对应文章可以用Ctrl+F进行搜索学习笔记pytorch笔记conda常用命令算法案例基础算法:判断回文数函数P1320压缩技术(续集版)二分查找判断闰年已知日期求星期数据结构线性表二叉树......
  • 玩转MYSQL数据库之--视图详解
    前言从今天开始本系列文章就带各位小伙伴学习数据库技术。数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深, 全面讲解数据库体系。 非常适合零基础的小伙伴来学习。全文大约【1297】字,不说废话,只讲可以让你学到技术、明白原理的纯......
  • 关于使用Serilog配置MySql数据库和appsettings的问题
    1、项目使用dtonet6WebApi。2、Nuget包:用来访问mysql数据库Pomelo.EntityFrameworkCore.MySqlSerilog日志Serilog配合dotnetSerilog.AspNetCore读取环境变量配置Serilog.Settings.ConfigurationSerilog读取MySqlSerilog.Sinks.MySQL输出到控制台中Serilog.Sinks.Co......
  • 面试官:MySQL 日期时间类型怎么选?
    构建数据库写程序避免不了使用日期和时间,对于数据库来说,有多种日期时间字段可供选择,如timestamp和datetime以及使用int来存储unixtimestamp。不仅新手,包括一些有经验的程序员还是比较迷茫,究竟我该用哪种类型来存储日期时间呢?那我们就一步一步来分析他们的特点,这样我们根据......
  • mysql 基础知识
    --_在mysql中是表示任一字符,下面查的是名字等于*Aaaa的SELECT*FROMUSERWHERENAME='_Aaaa';--如果就要查名字是_Aaaa的人需要使用转移字符,把_当成普通字符SELECT*FROMUSERWHERENAME='\_Aaaa';--或者自定义字符SELECT*FROMUSERWHERENAME='$_Aaaa'......
  • 一个好用的命令行mysql客户端 mycli
    官网:https://www.mycli.net/支持自动补全,高亮提示,非常好用;查看表结构\dtsys_menu;有点遗憾的是没有展示注释信息,不可也可以用其它语句查看:showfullcolumnsfromsys_menu;showcreatetablesys_menu;查询结果导出\Tcsv;\o~/export.csv;SELECT*FROMt_t......
  • 关于C语言变量存储类型和生存期
    1、局部变量和全局变量1、局部变量  在函数的开头定义;在函数的复合语句内定义;在函数的外部定义。2、全局变量 在函数之外定义的变量是外部变量,外部变量就是全局变量(增加了函数数据联系)3、当全局变量和局部变量同名,在局部变量的作用范围内,局部变量有效,全局变量......
  • 回表和索引覆盖
    聚簇索引和非聚簇索引先理解MySQLB+树的原理mysql有很多索引,每一个索引自成一个树结构1.加载数据时,先加载聚簇索引(一般来说,聚簇索引为该表的主键),非叶子节点存储叶子结点的地址,叶子结点存储聚簇索引值和该条数据的所有字段值2.然后加载非聚簇索引(一般来说是除主键之外的......
  • MySQL触发器Trigger加载以及目前局限
    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。作者:亮文章来源:GreatSQL社区原创概念介绍首先需要知道MySQL中触发器特点,以及表table相关触发器加载方式MySQL中单个trigger仅支持单事件触发即单......