MySQL手册里关于read_rnd_buffer_size的解释如下:
“这个参数用在sort查询之后 ,以保证获取以顺序的方式获取到查询的数据。如果你有很多order by 查询语句,增长这值能够提升性能。”
这个解释足够简练,但没有准确的告诉我们这个参数工作在哪一层,SQL层还是引擎层?
老实说,这个参数和read_buffer_size很像,read_buffer_size仅仅用于MyISAM引擎,我下意识的也认为read_rnd_buffer_size也仅仅用于MyISAM引擎。我今天早和Monty聊了聊,学到,它不是这样的。read_rnd_buffer_size不仅仅用在MyISAM引擎,而是用在所有引擎。它用在查询后,对读取真正的数据进行优化。它是这样工作的:
sort后,得到的是行数据指针,通过key-value的形式存在,对于MyISAM是数据的偏移量,对于innodb是主键或存储重新查询的全量数据(对于小片的数据是有益的)。
假设sort后的数据使用的是行指针,并且行中的字段能够被转换成固定的大小(除了BLOB/TEXT字段外),MySQL能够使用read_rnd_buffer_size优化数据读取。
因为sort后的数据是以key-value的形式存在的,使用这些行指针去读取数据,将是以指针数据物理的顺序去读取,很大程度上是随机的方式读取数据的。MySQL从sort_buffer中读取这些行指针数据,然后通过指针排序后存入read_rnd_buffer中,之后再通过指针读取数据时,基本上都是顺序读取了。
read_rnd_buffer_size是很重要的参数,尤其工作在如下场景:
* sort_buffer中存的是行指针而不是要查询的数据。
* 查询的字段中包含Blob/Text字段。
* sort后有大量的数据行(limit 10并不能帮助你,因为MySQL是通过指针获取行数据的)
如果你取出很少字段的数据(小于max_length_for_sort_data),行数据将会全部存储在sort buffer里,因此将不需要read_rnd_buffer_size这个参数。而如果你查询的字段数据很长(这些字段很可能含有Text/Blob字段),比max_length_for_sort_data还长,read_rnd_buffer_size这个参数将派上用场。
下面是其他网友的补充
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 458624 K
read_buffer_size:是MySQL读入缓冲区大小。对表进行顺序扫描的请求将分配一个读入缓冲区,MySQL会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大小。如果对表的顺序扫描请求非常频繁,并且你认为频繁扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能。
如下是对于16g内存的设置
read_buffer_size = 1M
个人机器是32G的,一般数据库就用来存储数据,很少用mysql 所以我就设置为2M或3M
手机在线更新系统MySQL数据库服务器参数优化mycnf,16G内存8核CPU
业务场景:后台支持手机在线更新系统,db服务器内存16G,8核,dell的pc服务器。
qps: 200个左右
tps: 1个左右 一分钟50几个
sort_buffer_size = 32M 大了, 8M即可
read_buffer_size = 32M 大了,8M即可
read_rnd_buffer_size = 16M 大了,8M即可
table_open_cache = 512
小了,建议改成2048
max_allowed_packet = 5M
小了,建议改成16M
tmp_table_size=64M
小了,建议改成2G
innodb_buffer_pool_size = 3000M
小了,改成db服务器总内存的60% 到80%
innodb_additional_mem_pool_size = 20M 小了,改成128M
join_buffer_size 这个参数为什么没有看到,必须设置值,join_buffer_size = 8M 必须补上,这个是跟join table 关联的,很重要。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]