您的位置:58脚本 > mysql临时表会占用运行内存吗? MariaDB 临时表

mysql临时表会占用运行内存吗? MariaDB 临时表

2023-03-13 12:32 MariaDB教程

mysql临时表会占用运行内存吗? MariaDB 临时表

mysql临时表会占用运行内存吗?

MySQL临时表是指在MySQL中创建的一种特殊的表,它们只存在于当前会话中,当会话结束时就会被自动删除。MySQL临时表可以用来存储查询结果,也可以用来存储复杂的数据集,这样就可以避免多次执行相同的查询。

那么MySQL临时表会占用运行内存吗?答案是肯定的。MySQL临时表是存储在内存中的,因此它会占用一定的内存空间。但是,MySQL临时表不会长期占用内存,因为它们只在当前会话有效,当会话结束时就会被自动删除。

CREATE TEMPORARY TABLE temp_table ( 
    id INT NOT NULL AUTO_INCREMENT, 
    name VARCHAR(255) NOT NULL, 
    PRIMARY KEY (id) 
); 

MariaDB 临时表

由于速度或一次性数据,一些操作可能受益于临时表。 临时表的生命期在会话终止时结束,无论是从命令提示符,PHP脚本还是通过客户端程序使用它们。 它也不以典型的方式出现在系统中。 SHOW TABLES命令不会显示包含临时表的列表。

创建临时表

CREATE TABLE语句中的TEMPORARY关键字生成临时表。 查看下面给出的示例 -

mysql>CREATE TEMPORARY TABLE order (
   item_name VARCHAR(50) NOT NULL
      , price DECIMAL(7,2) NOT NULL DEFAULT 0.00
      , quantity INT UNSIGNED NOT NULL DEFAULT 0
);

在创建临时表时,可以使用LIKE子句克隆现有表,这意味着其所有常规特征。 用于生成临时表的CREATE TABLE语句不会作为TEMPORARY关键字的结果提交事务。

虽然临时表在会话结束时与非临时表脱离,但它们可能有一定的冲突 - 

  • 他们有时会与过期会话中的ghost临时表冲突。

  • 它们有时与非临时表的影子名称冲突。

注意 - 临时表允许与现有非临时表具有相同的名称,因为MariaDB将其视为差异引用。

行政

MariaDB需要向用户授予创建临时表的权限。 使用GRANT语句将此权限授予非管理员用户。

GRANT CREATE TEMPORARY TABLES ON orders TO "machine122"@"localhost";

删除临时表

虽然临时表基本上在会话结束时删除,您可以选择删除它们。 删除临时表需要使用TEMPORARY关键字,最佳实践建议在临时表之前删除临时表。

mysql> DROP TABLE order;

阅读全文
以上是58脚本为你收集整理的mysql临时表会占用运行内存吗? MariaDB 临时表全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 58脚本 58jiaoben.com 版权所有 联系我们
桂ICP备12005667号-28 Powered by CMS