mysql cluster查询表是内存表还是磁盘表

如题所述

有两种方法,一种方法使用mysql的check table和repair table 的sql语句,另一种方法是使用MySQL提供的多个myisamchk, isamchk数据检测恢复工具。前者使用起来比较简便。推荐使用。
1. check table 和 repair table
登陆mysql 终端:
mysql -uxxxxx -p dbname
check table tabTest;
如果出现的结果说Status是OK,则不用修复,如果有Error,可以用:
repair table tabTest;
进行修复,修复之后可以在用check table命令来进行检查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。
2. myisamchk, isamchk
其中myisamchk适用于MYISAM类型的数据表,而isamchk适用于ISAM类型的数据表。这两条命令的主要参数相同,一般新的系统都使用MYISAM作为缺省的数据表类型,这里以myisamchk为例子进行说明。当发现某个数据表出现问题时可以使用:
myisamchk tablename.MYI
进行检测,如果需要修复的话,可以使用:
myisamchk -of tablename.MYI
关于myisamchk的详细参数说明,可以参见它的使用帮助。需要注意的时在进行修改时必须确保MySQL服务器没有访问这个数据表,保险的情况下是最好在进行检测时把MySQL服务器Shutdown掉。
-----------------------------
另外可以把下面的命令放在你的rc.local里面启动MySQL服务器前:
[ -x /tmp/mysql.sock ] && /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI
其中的/tmp/mysql.sock是MySQL监听的Sock文件位置,对于使用RPM安装的用户应该是/var/lib/mysql/mysql.sock,对于使用源码安装则是/tmp/mysql.sock可以根据自己的实际情况进行变更,而pathtochk则是myisamchk所在的位置,DATA_DIR是你的MySQL数据库存放的位置。
需要注意的时,如果你打算把这条命令放在你的rc.local里面,必须确认在执行这条指令时MySQL服务器必须没有启动!检测修复所有数据库(表)
温馨提示:内容为网友见解,仅供参考
无其他回答

怎么从sql cluster中移除磁盘
MySQL Cluster采用一系列的Disk Data objects来实现磁盘表。Tablespaces:作用是作为其他Disk Data objects的容器。Undo log files:存储事务进行回滚需要的信息,一个或者多个undo log files组成一个log files group,最后,该log file group关联到一个tablespaces。Data files:作用是存储表中的数据,data fi...

mysql数据库有哪些类型有哪些
1. 关系型数据库(RDBMS)关系型数据库是MySQL中最常见和应用最广泛的数据库类型。它采用关系模型来存储和管理数据,以表格的形式组织和存储数据,具有强大的数据操作功能,包括数据查询、插入、更新和删除等。2. 列式存储数据库 列式存储数据库是MySQL中一种特殊的数据库类型,主要用于分析性场景。与传...

mysql存储引擎有哪些
Memory存储引擎将所有数据存储在内存中,因此具有非常高的读写速度。这种存储引擎适用于需要快速访问数据且不需要持久化的临时表。然而,如果数据库服务器重启或发生故障,内存中的数据会丢失。因此,它主要用于缓存或临时表的使用场景。NDB Cluster存储引擎:NDB Cluster是MySQL的一个分布式存储引擎,支持数据...

mysql 内存临时表与磁盘表能关联查询吗
我们可以看到,1. MySQL 会基本遵守 max_heap_table_size 的设定,在内存不够用时,直接将表转到磁盘上存储。2. 由于引擎不同(内存中表引擎为 heap,磁盘中表引擎则跟随 internal_tmp_disk_storage_engine 的配置),本次实验写磁盘的数据量和 实验 05 中使用内存的数据量不同。3. 如果临时表要...

mysql数据库的类型有哪些
MySQL也支持列式存储数据库类型,这种类型的数据库与传统的行式存储数据库不同。列式存储数据库将数据存储按照列进行组织,更适合于执行大量的读取操作和分析查询。对于大数据分析和数据挖掘场景,列式存储数据库可以提供更高的性能。内存数据库(Memory-Based)MySQL提供了内存数据库类型,这种类型的数据库...

解决k8s MysqlCluster 无故重启问题
思考mysql使用内存高,可能跟mysql自身缓存有关系,查内存相关参数 看到 innodb_buffer_pool_size 设置得值特别大,这个参数设置只有主要缓存innodb表的索引,数据,插入数据时的缓冲,但默认是8M。为什么 innodb_buffer_pool_size 设置变得这么大?翻翻mysqlCluster源码,跟innodb_buffer_pool_size 有关代码 ...

MySQL千表查询优化技巧大揭秘mysql一千张表查询
为了提高查询性能,可以使用缓存查询的方式,将查询结果存储到缓存中,当相同的查询再次出现时,直接从缓存中获取结果。MySQL提供了内存表,可以将查询结果保存在内存中,这样查询速度更快。但是,如果表太大,内存表就不能用了。4. 分布式存储 在处理大型数据集时,MySQL单个实例的容量可能会达到标准限制。

简述mysql该怎样进行集群部署
1、在MySQL集群中.当table引擎为NDBCLUSTER时才做集群,其他非NDBCLUSTER表和一般MySQL数据库表一样,不会共享数据。NDBCLUSTER表数据存储在Data node服务器内存中,Data Node可以为1台或多台服务器,它们之间存放共享数据。Data Node服务器可以分组数据copy。例如:2,3,4,5为四台Data Node服务器ID. 2...

Mysql数据库3种存储引擎有什么区别?
为查询和引用其他表数据提供快速访问。MEMORY特点: 所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表。

在mysql中关于存储引擎描述正确的是
InnoDB是MySQL的默认存储引擎,它支持事务处理、行级锁和外键约束等特性,适用于需要事务处理和复杂查询的应用程序。MyISAM是一种基于文件的存储引擎,它不支持事务处理,但支持全文搜索、表锁和全文索引等特性,适用于读写操作较少、数据量较小的情况。Memory是一种基于内存的存储引擎,它支持全文搜索、表...

相似回答