首页
学习
活动
专区
圈层
工具
发布

MySQL存储引擎知多少

作者:my笔触 原文:http://www.cnblogs.com/yuxiuyan/p/6511837.html MySQL是我们经常使用的数据库处理系统(DBMS),不知小伙伴们有没有注意过其中的“...不同的存储引擎决定了MySQL数据库中的表可以用不同的方式来存储。我们可以根据数据的特点来选择不同的存储引擎。 在MySQL中的存储引擎有很多种,可以通过“SHOW ENGINES”语句来查看。...二.MyISAM存储引擎 MyISAM是MySQL中常见的存储引擎,曾经是MySQL的默认存储引擎。MyISAM是基于ISAM引擎发展起来的,增加了许多有用的扩展。 MyISAM的表存储成3个文件。...所以,这类数据库只使用在相对较小的数据库表。 注意,同一个数据库也可以使用多种存储引擎的表。如果一个表要求比较高的事务处理,可以选择InnoDB。...这个数据库中可以将查询要求比较高的表选择MyISAM存储。如果该数据库需要一个用于查询的临时表,可以选择MEMORY存储引擎。

1.3K31

mysql数据库:varchar类型可以存储多少个汉字,多少个数字

在设计数据库的时候会考虑给字段设置什么类型,设置多少长度合适,之前一直认为varchar(2)可以存储一个汉字,或者一个数字,通过今天无意间的查询,发现了这个错误,来记下来 其实varchar类型可以存储多少个汉字...,多少个数字,是要具体看我们的mysql版本。...通过查看,我使用的是5.0版本以上 的数据库,所以说一个varchar长度对应一个汉字或者一个数字 以为的版本为例做了如下测试: 新建表: CREATE TABLE varchar_test ( `id...123456789012345678901'); [Err] 1406 - Data too long for column'string' at row 1 通过测试,我们也能得出结论: 5.0版本以上的MySQL...的varchar(n)可以存储的中文字符数和英文字符数是一致的,都是n个字符

3.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL VARCHAR(M)最多能存储多少数据

    对于一个列来说,除了存储本身数据以外还要存储MySQL定义的数据,根据行记录格式,VARCHAR(M)存储空间由3部分构成,分别为真实数据、真实数据的长度、NULL值标识。...VARCHAR(M)最多能存储多少真实数据(也就是M的最大取值)跟字段采用的字符集有关,以下就拿字符集utf8、gbk、utf8mb4说明一下: utf8字符集:MySQL中的utf8字符集跟标准的utf...由于字段允许为NULL就只占一个字节,在字符集最多占用字节数大于1的情况下,计算出来的结果中会有小数,小数最终也会被舍弃,所以就先不考虑字段是否允许为NULL值了。...最多能存储多少真实数据的公式为(65535-2)÷4=16383.25,小数舍弃就是最多能存储16383个字符。...You have to change some columns to TEXT or BLOBs 最后总结一下,VARCHAR能最多能存储多少真实数据跟字符编码集有关,最多能存储多少个字符是个上限值,

    2K20

    Mysql数据库-存储引擎

    Mysql数据库-存储引擎 1 存储引擎概述 和大多数的数据库不同, MySQL中有一个存储引擎的概念, 针对不同的存储需求可以选择最优的存储引擎。...存储引擎就是存储数据,建立索引,更新查询数据等等技术的实现方式 。存储引擎是基于表的,而不是基于库的。所以存储引擎也可被称为表类型。 Oracle,SqlServer等数据库只有一种存储引擎。...MySQL提供了插件式的存储引擎架构。所以MySQL存在多种存储引擎,可以根据需要使用相应引擎,或者编写存储引擎。...可以通过指定 show engines , 来查询当前数据库支持的存储引擎 : image-20200616104826352 创建新表时如果不指定存储引擎,那么系统就会使用默认的存储引擎, MySQL5.5...查看Mysql数据库默认的存储引擎 , 指令 show variables like '%storage_engine%'; image-20200616105013230 2 存储引擎特性 下面重点介绍几种常用的存储引擎

    6.9K10

    MySQL数据库存储引擎

    ,现在许多不同的数据库管理系统都支持多种不同的数据引擎备注:因为在关系型数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(Table Type,即存储和操作此表的类型)MySQL存储引擎在...共九种存储引擎注:另外还有两种存储引擎,BDB(BerkeleyDB)引擎,NDB Cluster引擎InnoDB存储引擎InnoDB是事务型数据库的首选引擎,在5.5版本以后,也是mysql的默认事务型引擎...它的CPU效率可能是任何其他基于磁盘的关系型数据库引擎锁不能匹敌的3、InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。...CSV存储引擎使用该引擎的MySQL数据库表会在MySQL安装目录data文件夹中的和该表所在数据库名相同的目录中生成一个.CSV文件(所以,它可以将CSV类型的文件当做表进行处理),这种文件是一种普通文本文件...Federated存储引擎该存储引擎可以将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。这种存储引擎非常适合数据库分布式应用。

    7.4K31

    Mysql数据库-存储过程

    Mysql数据库-存储过程 1. 存储过程和函数概述 1. 存储过程和函数是事先经过编译并存储在数据库中的一段SQL语句的集合 a. 类似于java中的方法: 是一段java代码的集合 b....减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率 java : 1....查看和删除存储过程 3.1 语法: -- 查询数据库中所有的存储过程 select * from mysql.proc where db='数据库名称'; -- 删除存储过程 drop procedure...[if exists] 存储过程名称; 3.2 实例: -- 查询数据库中所有的存储过程 select * from mysql.proc where db='db2'; -- 删除存储过程 drop...procedure if exists stu_group; 执行如下: -- 查询数据库 db2 中所有的存储过程 mysql> select * from mysql.proc where db

    12.9K10

    你写的Java对象究竟占多少内存?

    作为一个Javaer,天天搞“对象”,那你写的对象究竟占用了多少内存呢?我们来看看你的“对象”是如何“败家”的。...,epoch 占2 bits,分代年龄(age)占用4 bits,偏向模式(biased_lock)占用1 bits,锁标记(lock)占用2 bits,剩余 1bit 未使用。...我用图例来说明 CPU 访问非内存对齐的过程: 在上图中,假设CPU 是一次读取4字节,在这个连续的8字节的内存空间中,如果我的数据没有对齐,存储的内存块在地址1,2,3,4中,那CPU的读取就会需要进行两次读取...非空对象占用内存计算 我们知道了一个空对象是占用16字节,那么一个非空对象究竟占用多少字节呢?...这也是如何分析一个对象真正的占用多少内存的思路,根据这个思路加上openJDK的jol工具就可以基本的掌握自己写的“对象”究竟败家了你多少内存。

    2K40

    MySQL数据库之存储过程与存储函数

    2 存储过程与存储函数 MySQL中提供存储过程与存储函数机制,我们姑且将存储过程和存储函数合称为存储程序。...与一般的SQL语句需要先编译然后立即执行不同,存储程序是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,当用户通过指定存储程序的名字并给定参数(如果该存储程序带有参数)来调用才会执行。   ...存储程序就是一条或者多条SQL语句和控制语句的集合,我们可以将其看作MySQL的批处理文件,当然,其作用不仅限于批处理。...当想要在不同的应用程序或平台上执行相同的功能一段程序或者封装特定功能时,存储程序是非常有用的。数据库中的存储程序可以看做是面向对编程中面向对象方法,它允许控制数据的访问方式。   ...的结束符设置为//,因为MySQL默认的语句结束符是分号“;”,为了避免与存储过程中的SQL语句结束符相冲突,需要使用delimiter改变存储过程的结束符,设置为以“end //”结束存储过程。

    9.8K31

    【MySQL数据库】详细讲解MySQL的存储引擎

    查询当前数据库支持的存储引擎show engines;图片创建表并指定存储引擎create table my_memory( id int, name varchar(10))engine...= 存储引擎;图片默认存储引擎(重要)InnoDB图片✨InnoDB简介InnoDB是一种兼顾可靠性和高性能的通用存储引擎,在MySQL5.5之后,InnoDB是默认的MySQL存储引擎✨InnoDB特点...要在ProgramDate里面查看InnoDB文件,但是ProgramDate是隐藏文件图片我们需要图片找到自己的数据库的存储位置图片就会发现下面有.ibd文件图片.ibd文件是二进制文件,不能使用记事本打开...✨MyISAM介绍MyISAM是MySQL早期的默认存储引擎✨MyISAM特点不支持事务,不支持外键支持表锁,不支持行锁访问速度快✨MyISAM文件xxx.sdi:存储表结构信息xxx.MYD:存储数据...hash索引✨Memory文件xxx.sdi:存储表结构信息如何选择存储引擎图片️‍总结图片如果大家有不明白的地方,或者文章有问题,欢迎大家在评论区讨论,指正我正在参与 腾讯云开发者社区数据库专题有奖征文

    1.4K00

    存储崩溃MySQL数据库恢复案例

    一、分析存储底层次结构 工程师通过与客户的沟通及对RAID阵列的分析得出故障存储的底层结构为若干物理磁盘组成一个存储池,划分了多个LUN,需要进行数据恢复的为LUN1,其中包含重点恢复的3台虚拟机。...四、通过分析数据库页提取数据 本次数据恢复的虚拟机内有mysql数据库,可以利用数据库底层存储的特殊性进行数据页扫描,提取数据。...五、获取mysql数据页并分析 根据mysql数据页特征进行数据页扫描并导出(innodb引擎可以使用此方案,myisam因为没有“数据页”概念所以不可用),分析系统表获取各用户表信息,根据各个表的id...六、提取表结构、提取记录 因为数据库使用时间已久,表结构也曾多次变更,加上系统表在存储损坏后也有部分数据丢失,记录提取过程遇到很大阻力。...分别使用两组不同表结构对数据记录进行提取并导入恢复环境中的mysql数据库内,然后剔除各个表中因为表结构变更造成的乱码数据,最后将两组数据分别导出为.sql文件。

    6.2K20

    ofbiz 使用mysql作为存储数据库

    ofbiz自带的数据库是Derby,这是一种小型的适合于测试系统的数据库,但不适合在产品级系统中使用,所以通常我们需要将ofbiz数据库迁移到其它数据库上。...下面介绍迁移到mysql的步骤,迁移到其他数据库操作类似。 1....安装mysql,创建ofbiz的数据库 使用以下命令分别创建ofbiz用户(密码ofbiz),和ofbiz、ofbizolap、ofbiztenant三个数据库 复制 mysql -u root create...修改ofbiz配置文件 编辑 entityengine.xml 修改默认的数据库引擎,以及连接数据库的用户名密码等信息 复制 # vim ofbiz_HOME/framework/entity/config.../ant start #启动ofbiz 至此已经完成ofbiz使用mysql数据库的配置,其他操作请参考ofbiz目录下的README文件

    3.9K60

    开源存储项目知多少

    这一点同样适用于看似传统的存储领域,也正影响着存储的使用方和存储厂商。...开源存储项目包括各种类型的存储基础设施软件,如SAN,NAS以及对象存储。企业客户可以通过多种途径获取开源存储软件,比如项目站点,Github以及商业存储厂商。 下面是一些比较成功的开源存储项目。...Ceph Ceph是一个可靠地、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务. GlusterFS 可扩展的网络文件系统。...Cinder (OpenStack块存储服务) Cinder是为OpenStack计算功能(虚拟机)的后端存储提供管理。目前有超过100多个厂家的块存储驱动。...Swift (OpenStack对象存储服务) Swift是一种为存储大量非结构化数据设计的分布式对象存储。

    1.1K20

    系列 | 高性能存储-MySQL数据库之存储过程揭秘

    如何去使用存储过程以及怎么执行存储过程。 DBASK小程序已经开设“MySQL 数据库专栏”,欢迎大家关注!...系列存储集锦 ---- 细致入微:Oracle中执行计划在Shared Pool中的存储位置探秘 故障诊断 | 存储Cache丢失导致数据库无法open的案例分享 【12.2新特性】在Oracle Active...Data Guard上部署列式存储 DBA必备技能:RAC 如何安装新主机识别老存储恢复数据库 守得云开见月明:一次ASM存储高可用故障解决过程分析 基于超大规模集群的本地存储系统优化 深入解析:DB2...V10.5新特性列式存储表的优点与缺点 WiredTiger存储引擎知多少?                                                                                               ...你可能没有创建存储过程的安全访问权限。许多数据库管理员限制存储过程的创建权限,允许用户使用存储过程,但不允许他们创建存储过程。 尽管有这些缺陷,存储过程还是非常有用的,并且应该尽可能地使用。

    2.7K70

    系列 | 高性能存储-MySQL数据库之存储过程揭秘

    墨墨导读:本文介绍什么是存储过程?为什么要使用存储过程?如何使用存储过程?如何去使用存储过程以及怎么执行存储过程。 DBASK小程序已经开设“MySQL 数据库专栏”,欢迎大家关注!...Data Guard上部署列式存储 DBA必备技能:RAC 如何安装新主机识别老存储恢复数据库 守得云开见月明:一次ASM存储高可用故障解决过程分析 基于超大规模集群的本地存储系统优化 深入解析:DB2...V10.5新特性列式存储表的优点与缺点 WiredTiger存储引擎知多少?...许多数据库管理员限制存储过程的创建权限,允许用户使用存储过程,但不允许他们创建存储过程。 尽管有这些缺陷,存储过程还是非常有用的,并且应该尽可能地使用。 不能编写存储过程?...执行存储过程 ---- MySQL称存储过程的执行为调用,因此MySQL执行存储过程的语句为CALL。 CALL接受存储过程的名字以及需要传递给它的任意参数。

    2.9K30
    领券