zoukankan      html  css  js  c++  java
  • 创建表的时候把表空间定义到其他目录

    一、需求场景

    可能有这么一种场景,系统中是 SSD 跟 SATA 混用,需要把经常读写的数据放在SSD上面,历史数据放到SATA上面

    二、实验场景

    在test库创建一个表 t1 ,定义目录到 /tmp 下面

    create database test;
    use test;
    create table t1(id int primary key) data directory = '/tmp';

    cd 到 /tmp 目录下

    cd /tmp
    ls -l
    drwxr-x---. 2 mysql mysql  20 Nov  7 21:48 test
    cd test
    ls -l
    -rw-r-----. 1 mysql mysql 98304 Nov  7 21:48 t1.ibd

    /tmp 下多了个 test 目录,test下有了t1.ibd 表空间。但是有个疑问,就是表定义文件在哪?难道还在datadir下面?

    cd 到 datadir(指的是datadir定义的目录) 下

    cd /database/mysql/mysql3306/data/test/
    ls -l
    -rw-r-----. 1 mysql mysql   67 Nov  7 21:43 db.opt
    -rw-r-----. 1 mysql mysql 8556 Nov  7 21:48 t1.frm
    -rw-r-----. 1 mysql mysql   16 Nov  7 21:48 t1.isl

    果然在 datadir 下面,不过还多了一个 t1.isl文件,这个是什么鬼。先不管,cat 一下

    cat t1.isl 
    /tmp/test/t1.ibd

    好像是指定到 /tmp/test/t1.ibd。看一下官方的解释

    包含表空间路径isl文件文件在datadir下创建。该 isl文件被视为符号链接。

    三、注意事项

    如果目录之外的表空间盘被卸载了,数据库是启动不了的。处理办法是删掉 isl,启动数据库之后再删除表

     

  • 相关阅读:
    iframe的使用小贴士
    jquery M97-datepicker日历控件
    CSS z-index 属性的使用方法和层级树的概念
    常用的js代码
    图片水平垂直居中
    server端和前端的区别
    nodejs模块化标准
    nodejs介绍
    小程序缓存Storage的基本用法
    小程序数据绑定的拓展用法
  • 原文地址:https://www.cnblogs.com/ziroro/p/9928109.html
Copyright © 2011-2022 走看看