一.将现有的myiasm引擎转化为innodb引擎

1.首先我们知道myisam有几点特别烦

  a( 运用的是表级锁

  b( 不支持csr(故障自动恢复)

2.mysql的5.1.177版本innodb引擎支持并不完善,到了5.6.38支持则非常完美,所以不要拿太低版本来做实验了

3.开始备份我们的数据

  1. mysqldump -uroot -p123 库名 表名 >/tmp/a.sql

4.对备份进行处理,将引擎转化为engine

  1. sed -i 's#ENGINE=MYISAM#ENGINE=INNODB#g' /tmp/a.sql

5.将修改后的备份导入

  1. mysql> source /tmp/a.sql

6.测试一下是否发生改变,用命令看看

  1. mysql> show table status like '表名'\G

二.存储引擎共享表空间和独立空间

1.表空间概念实在5.5版本之后出现的,目的是为了让数据库的存储更容易扩展

2.共享表空间中默认存储(临时表、undo、系统数据)5.7版本中默认会将undo和临时表独立出来,5.6版本也可以独立,只不过需要在初始化的时候进行配置

3.查看共享表空间

  1. #物理查看
  2. [root@db01 ~]# ll /application/mysql/data/
  3. -rw-rw---- mysql mysql Aug : ibdata1
  4. #命令行查看
  5. mysql> show variables like '%path%';
  6. innodb_data_file_path =bdata1:12M:autoextend

4.设置方法(第一个ibdata的数值要求与查看一样)

  1. #编辑配置文件
  2. [root@db01 ~]# vim /etc/my.cnf
  3. [mysqld]
  4. innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend

5.独立表空间:对于用户自主创建的表,会采用此种模式,每个表由一个独立的表空间进行管理

6.查看独立表空间

  1. #物理查看
  2. [root@db01 ~]# ll /application/mysql/data/world/
  3. -rw-rw---- mysql mysql Aug : city.ibd
  4. #命令行查看
  5. mysql> show variables like '%per_table%';
  6. innodb_file_per_table=ON

三.在没备份数据时,由于意外你表坏了,如何恢复

1.拷贝你的表到新的mysql数据库中

  1. [root@db01 ~]# cp -r /application/mysql/data/world/ /xingku/data/

2.启动新的数据库

  1. mysqld_safe --defaults-file=/xingku/my.cnf &

3.登陆以前的数据库进行查看

  1. mysql> select * from city;
  2. ERROR (42S02): Table 'world.city' doesn't exist

4.找到以前的表结构在新库中创建(没有,就找开发要)

  1. mysql> show create table world.city;
  2. #删掉外键创建语句
  3. CREATE TABLE `city` (
  4. `ID` int() NOT NULL AUTO_INCREMENT,
  5. `Name` char() NOT NULL DEFAULT '',
  6. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

5.删除新库的表空间文件

  1. mysql> alter table city_new discard tablespaces;

6.拷贝旧表空间文件

  1. [root@db01 world]# cp /application/data/world/city.ibd /xingku/data/world/city_new.ibd

7.授权

  1. chown -R mysql.mysql /xingku

8.导入表空间

  1. mysql> alter table city_new import tablespace;

接下来有两种方法

  a( 让开发把代码改一下链接到新库中

  b( 将新表导入到旧库中(小数据使用,大量数据你试试)

9.导出新的表

  1. mysqldump -uroot -p123 world city > /tmp/a.sql

10.删除旧库中的表文件

  1. rm -rf city.*

11.登陆旧库,导入新表

  1. mysql> source /tmp/a.sql

MySQL学习【第十篇存储引擎实际应用】的更多相关文章

  1. MySQL学习【第九篇存储引擎】

    一.存储引擎介绍 1.我们知道mysql程序构成由连接层,sql层,存储引擎层.存储引擎层和磁盘进行交互,由其去取数据,而我们取得数据是表的形式展现出来,谁做的呢?就是存储引擎结构化成表的形式返回给用 ...

  2. MySQL学习笔记七:存储引擎

    1.MySQL存储引擎的设计采用“插件式”方案,用户可以很方便地选择使用哪种存储引擎,想使用mysql没有提供的引擎时,可以自己安装进去. 查看支持的存储引擎 mysql> show engin ...

  3. MySQL学习笔记(四):存储引擎的选择

    一:几种常用存储引擎汇总表 二:如何选择 一句话:除非需要InnoDB 不具备的特性,并且没有其他办法替代,否则都应该优先考虑InnoDB:或者,不需要InnoDB的特性,并且其他的引擎更加合适当前情 ...

  4. MySQL学习笔记:Engine存储引擎

    在使用Mysql建表过程中,有时候会遇到一些奇怪的现象.例如,如何插入数据就是查询不到数据,此时可能是建表的存储引擎设置成为engine=blackhole的原因. 1.engine=innodb 提 ...

  5. mysql-介绍、MySQL部署、数据类型、存储引擎

    数据库介绍  什么是数据? 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材.数据是信息的表现形式和载体,可以是符号.文字.数字.语音.图像.视频等. ...

  6. 数据库MySQL学习笔记高级篇

    数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...

  7. 《MySQL技术内幕:InnoDB存储引擎(第2版)》书摘

    MySQL技术内幕:InnoDB存储引擎(第2版) 姜承尧 第1章 MySQL体系结构和存储引擎 >> 在上述例子中使用了mysqld_safe命令来启动数据库,当然启动MySQL实例的方 ...

  8. MySql(十一):MySQL性能调优——常用存储引擎优化

    一.前言 MySQL 提供的非常丰富的存储引擎种类供大家选择,有多种选择固然是好事,但是需要我们理解掌握的知识也会增加很多.本章将介绍最为常用的两种存储引擎进行针对性的优化建议. 二.MyISAM存储 ...

  9. MySQL的四种主要存储引擎

    在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库.而在设计表的时候,我们都会关注一个问题,使用什么存储引擎.等一下,存储引擎?什么是存储引擎? 什么是存储引擎? ...

随机推荐

  1. Spring Boot—19Session

    pom.xm <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  2. java应用破解之破解 jeb mips 2.3.3

    前言 jeb 的新版支持 mips的反编译 ,于是去官网申请一个试用版,试用版的限制还是比较多的,比如 使用时间验证,没法复制粘贴 等,于是想尝试看看能否破解,同时填了 java破解 这个坑. 修改版 ...

  3. jsoncpp cmake

    (1)下载jsoncpp源码源码地址:https://github.com/open-source-parsers/jsoncpp/tree/0.y.z(2)解压源码 unzip jsoncpp-0. ...

  4. 结对编程——四则运算器(UI第十组)

    博客目录: 一.问题描述                   二.设计思路                   三.UI开发过程                       四.对接过程       ...

  5. 6.HTML速查模块

    1.HTML 基本文档 <!DOCTYPE html> <html> <head> <title>文档标题</title> </hea ...

  6. Oracle EBS 请求参数关联

  7. Oracle EBS 请求

    SELECT t.responsibility_id, t.responsibility_key, t.responsibility_name, t.description, t.menu_id, f ...

  8. UIImageView的animationImages动画

    UIImageView的animationImages动画 UIImageView的animationImages,只有在做非常规动画的时候才有优势,比方说下图中左侧动画.如果用来做下图中的右侧动画, ...

  9. 如何避免HBase写入过快引起的各种问题

    首先我们简单回顾下整个写入流程 client api ==> RPC ==> server IPC ==> RPC queue ==> RPC handler ==> w ...

  10. django中session的存储位置

    django-session 存放位置 设置session的保存位置,有三种方法: 保存在关系数据库(db) 保存在缓存数据库(cache) 或者 关系+缓存数据库(cache_db) 保存在文件系统 ...