8.30笔记(mysql储存引擎)

mysql存储引擎:
1。什么是存储引擎
相当于mysql内置的文件系统。
与Linux中文件系统打交道的层次结构
2。存储引擎种类:
(oracle mysql):
针对不同表设定:
InnoDB
MyISAM
MEMORY
ARCHIVE
FEDERATED
EXAMPLE
BLACKHOLE
MERGE
NDBCLUSTER
CSV
mysql支持中文存储的引擎:
InnoDB  mysql5.5以后
MyISAM
MEMORY
CSV

其他引擎查看:
show engines;
存储引擎是作用在表上的,也就意味着,不同的表可以有不同的存储引擎类型。
PerconaDB:默认是XtraDB
MariaDB:默认是InnoDB
其他的存储引擎支持:
TokuDB    
RocksDB
MyRocks
以上三种存储引擎的共同点:压缩比较高,数据插入性能极高
现在很多的NewSQL,使用比较多的功能特性. Tidb,polardb
适用大量插入和删除操作场景。
innodb的核心特性:(以下为重点关注)innodb和myisam区别

MVCC:
多版本并发控制

集群索引(聚簇索引)

#查询高速缓存
事务

多个缓冲池

行级锁

外键

更多复制特性

支持热备

#支持change buffer

#自适应hash索引 AHI

自动故障恢复

优点
1、事务(Transaction)
2、MVCC(Multi-Version Concurrency Control多版本并发控制)
3、行级锁(Row-level Lock)
4、ACSR(Auto Crash Safey Recovery)自动的故障安全恢复
5、支持热备份(Hot Backup)
6、Replication: Group Commit , GTID (Global Transaction ID) ,多线程(Multi-Threads-SQL ) 
管理命令:
查看存储引擎命令:
SELECT @@default_storage_engine;
## 更改存储引擎(不代表生产操作)
会话级别:
set default_storage_engine=myisam;
全局级别(仅影响新会话):
set global default_storage_engine=myisam;
重启之后,所有参数均失效.
如果要永久生效:
写入配置文件
vim /etc/my.cnf
[mysqld]
default_storage_engine=myisam
存储引擎是表级别的,每个表创建时可以指定不同的存储引擎,但是我们建议统一为innodb.
SHOW 确认每个表的存储引擎:
SHOW CREATE TABLE City\G;
SHOW TABLE STATUS LIKE 'CountryLanguage'\G
INFORMATION_SCHEMA 确认每个表的存储引擎
select table_schema,table_name ,engine from information_schema.tables where table_schema not in ('sys','mysql','information_schema','performance_schema');
show table status;
show create table city;
修改一个表的存储引擎
alter table t1 engine innodb;(重复进行该命令整理碎片)
注意:此命令我们经常使用他,进行innodb表的碎片整理
减少碎片的方式:
1.全表导出,删除表再导入。
2.进行归档表,(pt-archive) 业务上数据删除改为truncate。
查询碎片:
delete操作产生。
select * from information_schema;#查看
#select table_schema,concat('alter table',table_name, 'engine=Innodb ;'),(data_length+index_length)/1024/1024 length,engine,data_free,table_rows from information_schema.tables where table_schema not in ('information_schema','mysql','performance_schema') and data_free !=0 group by table_name order by table_rows asc;

扩展:如何批量修改
需求:将zabbix库中的所有表,innodb替换为tokudb
select concat("alter table zabbix.",table_name," engine tokudb;") from
information_schema.tables where table_schema='zabbix' into outfile '/tmp/tokudb.sql';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值