mysql Creating sort index

11
在这里插入图片描述

Creating sort index‌是指数据库在执行排序操作时,创建一个内部临时表来存储排序结果的过程。这个过程通常发生在执行包含排序操作的查询时,例如ORDER BY语句。

创建排序索引的过程
‌内部临时表‌:数据库会使用一个内部临时表来存储排序结果。这个临时表用于暂存排序过程中的数据,直到排序完成。
‌排序操作‌:数据库会对查询结果进行排序,这个过程需要消耗大量的计算资源和临时存储空间。
‌索引创建‌:在排序完成后,数据库会创建一个索引来优化查询性能,这个索引就是所谓的“排序索引”。
创建排序索引的影响
‌性能影响‌:创建排序索引的过程可能会消耗大量的CPU和内存资源,尤其是在处理大量数据时。这可能会导致查询响应时间延长。
‌资源消耗‌:创建排序索引需要额外的存储空间和计算资源,可能会对数据库的整体性能产生影响。
‌优化建议‌:
‌增加索引‌:确保相关列上有适当的索引可以减少排序操作的需求。
‌优化查询‌:避免在不需要排序的查询中使用ORDER BY,或者尽量减少排序的数据量。
‌调整配置‌:通过调整数据库的配置参数,如增加临时表的大小限制,可以缓解资源压力。

临时表是执行sql语句过程中创建的中间过渡表,例如多表联合操作,就需要建立临时表

查看临时表的使用状态

mysql>show global status like ‘created_tmp%’;

created_tmp_tables 每次创建临时表时都会增加

created_tmp_disk_tables 如果是在磁盘上创建临时表,它会增加

created_tmp_files 表示MySQL服务创建的临时文件数

比较理想的配置是:

created_tmp_disk_tables / created_tmp_tables *100% <= 25%

再看一下临时表的配置:

show variables like ‘%tmp_table_size%’;

tmp_table_size的默认值是32M,说明只有32M以下的临时表才能全部放在内存中,超过的就会用到硬盘临时表

可以适当增加此变量的值,例如

mysql> set session tmp_table_size=40000000;

因为tmp_table_size变量是有作用域的,所以使用 ‘session’

max_connections=500
max_allowed_packet=500M


innodb_buffer_pool_size = 10240M
join_buffer_size = 32M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
key_buffer_size=64M

log-bin = mysql-bin
slave-skip-errors=all

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值