MySQL优化-存储引擎
MySQL优化-存储引擎
标签(空格分隔): mysql
存储引擎
查看存储引擎
show engines
Myisam:
表锁 全文索引
Innodb:
行锁 事物 外键
Memory:
内存存储引擎 速度快 数据容易丢失
Myisam:
创建Myisam数据表
create table(xxx)engine=Myisam charset=utf8
Myisam 会生成三个表文件:
/usr/local/mysql/var/databaseName/tableName
student.frm 表结构 frame
student.MYD 表数据 data
student.MYI 表索引 index
Myisam 支持复制粘贴 只需要把这三个文件copy
就可以 无需sql导入
Myisam 压缩机制 节省空间
myisampack tablename 压缩-路径
myisamchk --unpack tablename 解压
myisamchk -rq tablename 重新生成索引
/usr/local/mysql/bin/myisampack /usr/local/mysql/var/comic/student [压缩]
/usr/local/mysql/bin/myisamchk -rq /usr/local/mysq/var/comic/student [重建索引]
/usr/local/mysql/bin/myisamchk --unpack /usr/local/mysq/var/comic/student [解压]
flush table student [刷新表]
在执行重建索引是会有的会报错:
[myisam] error:unknow variables read_buffer = 2M
vi /etc/my.cnf
在[myisamchk]
把 read_buffer = 2M | write_buffer = 2M 注释掉就可以了
压缩前:
-rw-r----- 1 mysql mysql 8688 Aug 4 16:06 student.frm
-rw-r----- 1 mysql mysql 201326592 Aug 4 16:39 student.MYD
-rw-r----- 1 mysql mysql 43111424 Aug 4 16:39 student.MYI
压缩后:
-rw-r----- 1 mysql mysql 8688 Aug 4 16:06 student.frm
-rw-r----- 1 mysql mysql 71303864 Aug 4 16:39 student.MYD
-rw-r----- 1 mysql mysql 1024 Aug 4 16:51 student.MYI
Myisam压缩后要重建索引 解压后无需重建索引
Myisam压缩后只允许读操作 不允许写操作 [table student is read only]
Myisam数据的写入数据和存储数据一致
Myisam如果进行并发写入时 为了保证数据的一致性 加锁 只支持表锁。表锁会影响
整个数据表的操作 其他操作在等待
Innodb:
Innodb默认只用一个表结构文件,索引和数据和整个数据库共同使用
/usr/local/mysql/var/ibdata1 整个数据库的索引和数据
/usr/local/mysql/var/comic/student1.frm innodb表结构文件
可以通过配置文件 达到每一个Innodb表结构文件对应一个表空间文件
show variables like 'innodb_file_per_table' [查看]
set global innodb_file_per_table = 1 [开启]
/usr/local/mysql/var/comic/student1.ibd
Innodb复制恢复
mysqldump -uroot -proot databaseName > 路径.sql [备份]
mysql -uroot -proot databaseName < 路径.sql [还原]
Memory:
内部数据运行速度非常快,临时存储一些信息
内存存储引擎,重启mysql数据会丢失
summary:
Myisam:写入数据非常快,适合读写频繁的系统
Innodb:适用于业务逻辑较强,修改操作较多的系统
MySQL优化-存储引擎的更多相关文章
- mysql优化 | 存储引擎,建表,索引,sql的优化建议
个人对于选择存储引擎,建表,建索引,sql优化的一些总结,给读者提供一些参考意见 推荐访问我的个人网站,排版更好看: https://chenmingyu.top/mysql-optimize/ 存储 ...
- MySQL常用存储引擎及如何选择
一.MySQL的存储引擎 完整的引擎说明还是看官方文档:http://dev.mysql.com/doc/refman/5.6/en/storage-engines.html 这里介绍一些主要的引擎 ...
- MySQL数据库----存储引擎
什么是存储引擎? 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操 ...
- MySql 扩展存储引擎
MySql 扩展存储引擎 下面介绍几个列式存储引擎(都有两个版本:社区版.商业版): 一:TokuDB TokuDB 是一个高性能.支持事务处理的 MySQL 和 MariaDB 的存储引擎.Toku ...
- MySQL-TokuDB:MySQL 高性能存储引擎:TokuDB
ylbtech-MySQL-TokuDB:MySQL 高性能存储引擎:TokuDB 1.返回顶部 1. 在安装MariaDB的时候了解到代替InnoDB的TokuDB,看简介非常的棒,这里对ToduD ...
- [转帖]mysql常用存储引擎(InnoDB、MyISAM、MEMORY、MERGE、ARCHIVE)介绍与如何选择
mysql常用存储引擎(InnoDB.MyISAM.MEMORY.MERGE.ARCHIVE)介绍与如何选择原创web洋仔 发布于2018-06-28 15:58:34 阅读数 1063 收藏展开 h ...
- [转载]MySQL的存储引擎
[转载]MySQL的存储引擎 来源:https://www.cnblogs.com/lina1006/archive/2011/04/29/2032894.html 其实这是个只有在MySQL中才存在 ...
- MySQL InnoDB存储引擎体系架构 —— 索引高级
转载地址:https://mp.weixin.qq.com/s/HNnzAgUtBoDhhJpsA0fjKQ 世界上只两件东西能震撼人们的心灵:一件是我们心中崇高的道德标准:另一件是我们头顶上灿烂的星 ...
- Mysql基础(二):MySQL之存储引擎
目录 MySQL之存储引擎 1.MySQL存储引擎介绍 2.MySQL结构 3.MySQL存储引擎分类 4.存储引擎的使用 5.总结 MySQL之存储引擎 1.MySQL存储引擎介绍 MySQL中的数 ...
随机推荐
- Android实战简易教程-第十三枪(五大布局研究)
我们知道Android系统应用程序通常是由多个Activity组成,而这些Activity以视图的形式展如今我们面前, 视图都是由一个一个的组件构成的. 组件就是我们常见的Button.TextEdi ...
- Windows身份验证和混合验证的差别
两个验证方式的不同主要集中在信任连接和非信任连接. windows 身份验证相对于混合模式更加安全,使用本连接模式时候,sql不推断sapassword.而仅依据用户的windows权 ...
- node 命令行输入控件 prompt.js
function print(){ console.log.apply(console , arguments) } var step ,_lstStp ,_onConfirmInput ,_ ...
- 关于 折半查找 while 条件 < , <=
int bin_search(int a[],int len,int key) { int low=0; int high=len-1; while(low<=high) //若为low< ...
- Android 6.0 开发人员对系统权限的使用与练习(Permissions Best Practices)
Permissions Best Practices 在安装的过程中,用户非常easy忽略权限请求. 假设一个用户相应用感觉沮丧或者操心泄漏个人信息,那么这些用户就会不用他或者卸载它. 怎样规避这个问 ...
- .net中的目录
System.Environment.CurrentDirectory Application.StartupPath https://msdn.microsoft.com/en-us/library ...
- hpuoj--1122-- HH的随机数(数据去重)
1122: HH的随机数 时间限制: 1 Sec 内存限制: 128 MB 提交: 476 解决: 75 [提交][状态][讨论版] 题目描述 HH想在学校中请一些同学一起做一项问卷调查,为了实验 ...
- requireJS实现原理分析
下面requireJS实现的基本思路 项目地址https://github.com/WangMaoling/require var require = (function(){ //框架版本基本信息 ...
- @JsonIgnore忽略属性,返回的json中不包含字段
@JsonIgnore的使用: 实体类中加@JsonIgnore注解 package com.baidu.entity; import com.fasterxml.jackson.annotation ...
- SQL中一次插入多条数据
SQL中insert一次可以插入一条数据,我们有三种方法可以一次性插入多条数据. 1. 语法:select 字段列表 into 新表 from 源表 注意事项:此种方法新表是系统自动创建,语句执行前不 ...