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';
8.30笔记(mysql储存引擎)
最新推荐文章于 2024-07-19 00:12:38 发布