当我在mysql终端中运行以下命令时
mysql> SHOW GLOBAL VARIABLES LIKE 'tmp_table_size';
+----------------+----------+
| Variable_name | Value |
+----------------+----------+
| tmp_table_size | 16777216 |
+----------------+----------+
1 row in set (0.01 sec)
这可能是非常不经意的,但是值16777216是以字节为单位的吗?我只是想确定,似乎找不到
最近,我开始注意到,我的MySQL的tmp表中有一大笔是在我的磁盘上创建的,而不是在内存中创建的。
TEMP TABLES
Current max_heap_table_size = 128 M
Current tmp_table_size = 128 M
Of 73993 temp tables, 46% were created on disk
Perhaps you should increase your tmp_table_size and/or max_heap_table_size
to reduce the number of disk-based temporary tabl
我有一个“简单”的查询:
SELECT searchterm, count(searchterm) as intNumHits
FROM site_searches
WHERE searchdate >= 20151202 AND searchdate <= 20151202
GROUP BY searchterm
ORDER BY intNumHits DESC
LIMIT 50;
site_searches >750万行。
搜索项和搜索日期被编入索引。
从这里的其他答案来看,max_heap_table_size和tmp_table_size都受到质疑。我的设置是
我试图在2G Ram Linux Centos的VPS上微调mysql,我使用了mysqltuner.pl报告说:
General recommendations:
Add skip-innodb to MySQL configuration to disable InnoDB
MySQL started within last 24 hours - recommendations may be inaccurate
Enable the slow query log to troubleshoot bad queries
我看到大量的正在编写中。我可以用SHOW GLOBAL STATUS where Variable_name like 'Created_tmp_disk_tables'看到伯爵。
我知道我可以更新max_heap_table_size和tmp_table_size以帮助防止这种情况,但是如果不知道写入磁盘的表的大小,就很难知道要使用哪些值。
有人知道如何找到这个价值吗?
我不是数据库专家。
但这是我需要帮助的问题。
我有一个相对新鲜的服务器运行AlmaLinux 8.7,64 of内存和一对of的SSD。
在更新到MariaDB 10.6.x之后,我将my.cnf文件配置为表示具有类似设置的先前服务器:
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]
#
# include all files from the config directory
#
!inclu
我创建了包含1个管理节点、2个数据节点和2个MySQL节点的SQL集群。当我运行我的应用程序(spring boot)时,应用程序在创建表格时崩溃,并显示以下错误:
The table 'user' is full [Failed SQL: ALTER TABLE user ADD CONSTRAINT ... FOREIGN KEY...
我已经检查了以下内容:
innodb_data_file_path、tmp_table_size、innodb_file_per_table和max_heap_table_size,这些值与我的本地环境中的值相同。我还可以检查什么来解决这个
我有一个常见的聚合查询
SELECT
products.type,
count(products.id)
FROM
products
INNER JOIN product_colors
ON products.id = product_colors.product_id
AND product_colors.is_active = 1
AND product_colors.is_archive = 0
WHERE
(produ
我在64位Ubuntu15.04上使用了MySQL版本5.6.25-0ubuntu0.15.04.1。我有2GB内存,磁盘是SSD (因此,在我看来,写入磁盘并不是那么昂贵)。我目前只有两个小Wordpress博客的数据库。我并没有试图深入优化这个问题,但是我遇到了一些我认为是奇怪的行为。
当我运行MySQLTuner 1.5.0时,我得到以下输出:
[OK] Currently running supported MySQL version 5.6.25-0ubuntu0.15.04.1
[OK] Operating on 64-bit architecture
-------- Stor
我试图使用以下语法创建临时mySQL表并将其加载到内存中,但遇到了"Table“错误:
CREATE TEMPORARY TABLE IF NOT EXISTS tmpHistory ENGINE=MEMORY SELECT * FROM history ORDER BY date ASC;
我的原始历史InnoDB表大约有300万行和大约300 My。我已经从它们的16 of默认值中增加了以下两个服务器变量:
max_heap_table_size = 536870912
tmp_table_size = 536870912
我在AWSr3.xLarge上运行mySQL,这是一个4核
我正在使用一个临时表,使用的代码如下:
CREATE TEMPORARY TABLE temp (ID INT(11), Actress varchar(200))
ENGINE=MEMORY
SELECT ID, Actress FROM actress_titles order by id;
但是我得到了下一个错误:错误代码1114,表'temp‘已满。我还尝试通过执行以下代码来增加临时表的大小:
SET GLOBAL tmp_table_size = 1024 * 1024 * 1024 * 5;
SET GLOBAL max_heap_table_size = 1024 *
它用于复制内存表,在重新启动之前,没有err信息,而且复制工作正常。
我尝试过修改my.cnf并多次重新启动MySQL,但是它不起作用
重新启动MySQL服务后显示从状态:
Slave_IO_Running: No
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Binary log is not open'
显示二进制日志:
ERROR 1381 (HY000): You are not using binary logging
my.cnf:
[m