- 浏览: 159997 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (118)
- rest (2)
- spring (8)
- java proxy (1)
- linux (9)
- nginx (1)
- 加密算法 (2)
- jquery (3)
- hibernate (9)
- bootstrap (0)
- mysql (15)
- java (6)
- 应用服务器 (2)
- jdbc (3)
- js (3)
- springMVC (3)
- JAVA基础分类 (2)
- mycat (5)
- mybatis (0)
- drools规则引擎 (0)
- 压力测试工具 (1)
- 日志管理 (3)
- maven (3)
- 数据源 (1)
- kryo 序列化 (1)
- dubbo (3)
- com.google.common.collect 工具类 (2)
- memcache (2)
- jdk (1)
- 正则 (2)
- amoeba (1)
- 分布式事务 (2)
- html5 (1)
- spring-data-elasticSearch (2)
- shell脚本 (1)
- Elasticsearch (9)
- 设计模式 (2)
- NOSQL (1)
- hash算法 (4)
- 多线程 (0)
- 电商 (1)
- pinpoint (0)
最新评论
先说下tmp_table_size吧:
它规定了内部内存临时表的最大值,每个线程都要分配。(实际起限制作用的是tmp_table_size和max_heap_table_size的最小值。)如果内存临时表超出了限制,MySQL就会自动地把它转化为基于磁盘的MyISAM表,存储在指定的tmpdir目录下,默认:
mysql> show variables like "tmpdir";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| tmpdir | /tmp/ |
+---------------+-------+
优化查询语句的时候,要避免使用临时表,如果实在避免不了的话,要保证这些临时表是存在内存中的。如果需要的话并且你有很多group by语句,并且你有很多内存,增大tmp_table_size(和max_heap_table_size)的值。这个变量不适用与用户创建的内存表(memory table).
你可以比较内部基于磁盘的临时表的总数和创建在内存中的临时表的总数(Created_tmp_disk_tables和Created_tmp_tables),一般的比例关系是:
Created_tmp_disk_tables/Created_tmp_tables<5%
max_heap_table_size
这个变量定义了用户可以创建的内存表(memory table)的大小.这个值用来计算内存表的最大行数值。这个变量支持动态改变,即set @max_heap_table_size=#
,但是对于已经存在的内存表就没有什么用了,除非这个表被重新创建(create table)或者修改(alter table)或者truncate table。服务重启也会设置已经存在的内存表为全局max_heap_table_size的值。
这个变量和tmp_table_size一起限制了内部内存表的大小。
它规定了内部内存临时表的最大值,每个线程都要分配。(实际起限制作用的是tmp_table_size和max_heap_table_size的最小值。)如果内存临时表超出了限制,MySQL就会自动地把它转化为基于磁盘的MyISAM表,存储在指定的tmpdir目录下,默认:
mysql> show variables like "tmpdir";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| tmpdir | /tmp/ |
+---------------+-------+
优化查询语句的时候,要避免使用临时表,如果实在避免不了的话,要保证这些临时表是存在内存中的。如果需要的话并且你有很多group by语句,并且你有很多内存,增大tmp_table_size(和max_heap_table_size)的值。这个变量不适用与用户创建的内存表(memory table).
你可以比较内部基于磁盘的临时表的总数和创建在内存中的临时表的总数(Created_tmp_disk_tables和Created_tmp_tables),一般的比例关系是:
Created_tmp_disk_tables/Created_tmp_tables<5%
max_heap_table_size
这个变量定义了用户可以创建的内存表(memory table)的大小.这个值用来计算内存表的最大行数值。这个变量支持动态改变,即set @max_heap_table_size=#
,但是对于已经存在的内存表就没有什么用了,除非这个表被重新创建(create table)或者修改(alter table)或者truncate table。服务重启也会设置已经存在的内存表为全局max_heap_table_size的值。
这个变量和tmp_table_size一起限制了内部内存表的大小。
发表评论
-
mysql 查询指定索引
2017-07-13 12:25 1001select * from course c f ... -
MYSQL 函数 游标
2017-05-15 20:23 556CREATE PROCEDURE `test`.`new_ ... -
mysql 查看数据库是否有写操作(通过mysqlbin)
2016-10-08 18:29 642/usr/local/mysql/bin/mysqlbin ... -
Using filesort
2015-03-23 18:52 477只有在order by 数据列的时候才可能会出现using f ... -
MySQL STRAIGHT_JOIN
2015-03-23 18:36 693MySQL STRAIGHT_JOIN STRAIGHT_JO ... -
mysql密码忘记后重置
2014-12-30 15:51 4851./etc/init.d/mysql stop 2.以安全模 ... -
show processlist status
2014-10-30 10:31 587After create This occurs when t ... -
mysql 主从复制常见问题
2014-10-14 09:47 11721.问题一:主从复制, ... -
Mysql 表所查询
2014-09-23 10:09 550可以通过检查 table_locks_waited和table ... -
Mysql 语句避免重复插入 Insert Select Not Exist
2014-09-18 17:33 926插入数据时,如果为了避免重复插入,而不像通过两次Sql进 可以 ... -
mysql in not in exist not exist 区别
2014-09-17 19:59 3429Mysql In Not In 不对null 进行处理 如果子 ... -
MySQL小误区:关于set global sql_slave_skip_counter=N 命令
2014-09-17 19:22 479背景知识1: 在主 ... -
mysql 从数据库slave 状态为no的解决方法
2014-09-11 12:08 659从数据库的状态显示为如下 Slave_IO_Running ... -
MySQL里获取当前week、month、quarter的start_date/end_date
2014-08-12 19:35 758当前week第一天 select date_sub(cur ... -
mysql 日期计算
2014-08-06 18:04 0mysql date()函数 MySQL DATE_SUB() ...
相关推荐
总结来说,`tmp_table_size` 和 `max_heap_table_size` 是MySQL数据库中关键的优化参数,它们影响到内存临时表的使用,进而影响查询效率。正确设置这两个参数,结合对查询语句的优化,可以显著提升数据库系统的整体...
此外,还有一个与`tmp_table_size`相关的参数`max_heap_table_size`,当内存临时表大小超过`max_heap_table_size`时,数据将溢出到磁盘。因此,`max_heap_table_size`应至少等于`tmp_table_size`,以避免不必要的...
* max_heap_table_size * max_join_size * max_length_for_sort_data * max_points_in_geometry * max_seeks_for_key * max_sort_length * optimizer_prune_level * optimizer_search_depth * optimizer_switch * ...
通过设置 `tmp_table_size` 和 `max_heap_table_size` 来调整内存临时表的大小: ```sql SET GLOBAL tmp_table_size = 512M; SET GLOBAL max_heap_table_size = 512M; ``` 3. **配置 InnoDB 临时表空间** ...
15. **tmp_table_size**和**max_heap_table_size**:这两个参数决定了内存中临时表的最大大小,对处理大型数据集时的性能有直接影响。 16. **thread_cache_size**:缓存线程的数量,减少创建新线程的开销。 17. **...
此时,我们应该检查`max_heap_table_size`和`tmp_table_size`的设置是否合理,以及查询中是否存在大量使用`BLOB`或`TEXT`字段的情况。此外,还需要考虑是否需要调整查询逻辑,以减少大列的使用,从而尽可能地减少...
如果max_heap_table_size参数设置的值小于tmp_table_size,则会使用max_heap_table_size作为内存临时表的最大大小。 接着是全局共享内存,这是MySQL实例中的所有线程共享的内存区域。全局共享内存主要用于缓存表的...
5. **tmp_table_size**和**max_heap_table_size**:这两个参数控制内存中临时表的大小。如果处理大量临时表或大联接操作,应适当增加这些值,但要确保不超过系统内存。 6. **innodb_flush_log_at_trx_commit**:...
max_heap_table_size = 512M skip-log-bin lower_case_table_names=1 tmpdir=/data/tmp foreign_key_checks=0 max_allowed_packet = 1073741824 ``` 启动 MySQL 1. 开机自启:cd /data/mysql/support-files/,sudo ...
如果大部分临时表被写入磁盘,这可能是内存不足或者查询设计不当的标志,应考虑增大`tmp_table_size`和`max_heap_table_size`,或者优化导致大量磁盘临时表的查询。 除此之外,还有其他优化点,例如InnoDB的缓冲池...
max_heap_table_size = 128M log-slave-updates log-bin = /usr/local/mysql/binlog/binlogbinlog binlog-do-db=oa_fbbinlog-ignore-db=mysql binlog_cache_size = 4M binlog_format = MIXED max_binlog_size = 100M...
4. **tmp_table_size** 和 **max_heap_table_size**:这两个参数分别控制了内存临时表的大小限制。当查询过程中需要创建临时表时,如果数据量超过指定大小,则会转为磁盘临时表,这会显著降低性能。因此,根据实际...
- `tmp_table_size` 和 `max_heap_table_size` 分别设置临时表的最大内存大小,避免过多的磁盘临时表。 - `query_cache_size` 设置为128MB,用于缓存查询结果,提高查询速度。但在某些情况下,关闭查询缓存可能更...
9. `max_heap_table_size`:内存中临时表的最大大小,超过后会转存到磁盘。 10. `read_buffer_size`和`read_rnd_buffer_size`:分别用于顺序读取和随机读取数据的缓冲区大小,影响查询效率。 11. `sort_buffer_...
6. **优化选项**:如`query_cache_size`控制查询缓存的大小,`join_buffer_size`影响JOIN操作的性能,`tmp_table_size`和`max_heap_table_size`限制内存中临时表的大小。 7. **复制配置**:在主从复制的环境中,`...
内存表,就是放在内存中的表,所使用内存的大小可通过My.cnf中的max_heap_table_size指定,如max_heap_table_size=1024M,内存表与临时表并不相同,临时表也是存放在内存中,临时表最大所需内存需要通过tmp_table_...
#如果你做很多高级GROUP BY 查询,增加tmp_table_size 和 max_heap_table_size 值 tmp_table_size = 256M max_heap_table_size = 512M #重点优化参数,在数据库写入量或是更新量也比较大的系统,该参数不适合分配过...
内存表,就是放在内存中的表,所使用内存的大小可通过My.cnf中的max_heap_table_size指定,如max_heap_table_size=1024M,内存表与临时表并不相同,临时表也是存放在内存中,临时表最大所需内存需要通过tmp_table_...