文档章节

MySQL优化-存储引擎

o
 osc_1ee7cxmx
发布于 2018/08/06 17:49
字数 612
阅读 14
收藏 0

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:适用于业务逻辑较强,修改操作较多的系统
上一篇: Linux crontab
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

树莓派4b + Ubuntu20.04 Server 安装Java8

安装环境: 树莓派4b + Ubuntu20.04 Server 32位 1. 下载jdk https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 2. 解压 tar -zxvf jdk-8u251-linux-arm32-vf......

SummerGao
16分钟前
9
0
项目实战:Qt+OpenCV图像处理与识别算法平台

若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址:h...

红模仿_红胖子
19分钟前
7
0
北京智源大会 | AI + 医疗的下一个十年:从公共卫生预警到人类基因密码破解 道翰天琼认知智能api机器人接口。

医疗事关人身安全,要求极高,容错率极低,因此,知识壁垒和技术壁垒都很高。过去,AI系统更多的是服务于终端,辅助医生诊断、决策。但是,医疗很复杂,直接切入终端问题很多。未来十年,AI+...

jackli2020
22分钟前
11
0
源于HystrixCommandStartStream和RollingCommandMaxConcurrencyStream 的 RxJava demo

其实,最近在工作之余看Hystrix源代码已经有一个多月了, 除了对 HystrixCommandProperties ,HystrixCommand 和AbstractCommand 几个类比较了解以外,其余看山不是山,比较懵, 主要是因为H...

专业写BUG的程序员
25分钟前
16
0
聊聊Java中的异常及处理

前言 在编程中异常报错是不可避免的。特别是在学习某个语言初期,看到异常报错就抓耳挠腮,常常开玩笑说编程1分钟,改bug1小时。今天就让我们来看看什么是异常和怎么合理的处理异常吧! 异常...

良许Linux
29分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部