8.0 releases. MySQL NDB Cluster supports both NDB  and InnoDB  tablespaces. The value of the default_storage_engine  system variable is used for ENGINE  if the option is not specified. 

•The ENGINE_ATTRIBUTE  option (available as of MySQL 8.0.21) is used to specify tablespace attributes for primary storage engines. The option is reserved for future use. 

Permitted values are a string literal containing a valid JSON  document or an empty string (’’). Invalid JSON  is rejected. 

CREATE TABLESPACE ts1 ENGINE_ATTRIBUTE=’{" key ":" value "}’; 

ENGINE_ATTRIBUTE  values can be repeated without error. In this case, the last specified value is used. 

ENGINE_ATTRIBUTE  values are not checked by the server, nor are they cleared when the table’s storage engine is changed. 

## Notes 

•For the rules covering the naming of MySQL tablespaces, see Section 9.2, “Schema Object Names” . In addition to these rules, the slash character (“/” ) is not permitted, nor can you use names beginning with innodb_ , as this prefix is reserved for system use. 

•Creation of temporary general tablespaces is not supported. 

•General tablespaces do not support temporary tables. 

•The TABLESPACE  option may be used with CREATE TABLE  or ALTER TABLE  to assign an InnoDB table partition or subpartition to a file-per-table tablespace. All partitions must belong to the same storage engine. Assigning table partitions to shared InnoDB  tablespaces is not supported. Shared tablespaces include the InnoDB  system tablespace and general tablespaces. 

•General tablespaces support the addition of tables of any row format using CREATE TABLE ... TABLESPACE . innodb_file_per_table  does not need to be enabled. 

• innodb_strict_mode  is not applicable to general tablespaces. Tablespace management rules are strictly enforced independently of innodb_strict_mode . If CREATE TABLESPACE  parameters are incorrect or incompatible, the operation fails regardless of the innodb_strict_mode  setting. When a table is added to a general tablespace using CREATE TABLE ... TABLESPACE  or ALTER TABLE ... TABLESPACE , innodb_strict_mode  is ignored but the statement is evaluated as if innodb_strict_mode  is enabled. 

•Use DROP TABLESPACE  to remove a tablespace. All tables must be dropped from a tablespace using DROP TABLE  prior to dropping the tablespace. Before dropping an NDB Cluster tablespace you must also remove all its data files using one or more ALTER TABLESPACE ... DROP DATATFILE statements. See Section 23.5.10.1, “NDB Cluster Disk Data Objects” . 

•All parts of an InnoDB  table added to an InnoDB  general tablespace reside in the general tablespace, including indexes and BLOB  pages. 

For an NDB  table assigned to a tablespace, only those columns which are not indexed are stored on disk, and actually use the tablespace data files. Indexes and indexed columns for all NDB  tables are always kept in memory. 

•Similar to the system tablespace, truncating or dropping tables stored in a general tablespace creates free space internally in the general tablespace .ibd data file which can only be used for new InnoDB data. Space is not released back to the operating system as it is for file-per-table tablespaces. 

•A general tablespace is not associated with any database or schema. 

