首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

mysql汉语件排序中单双路排序

2013-03-21 
mysql中文件排序中单双路排序在执行相关的SQL语句中,在mysql里进程容易出现一些file temp类的字,该字告诉

mysql中文件排序中单双路排序

       在执行相关的SQL语句中,在mysql里进程容易出现一些file temp类似的字眼,该字眼告诉我们我们的宿主sql采用了文件排序等操作,这可能会极大的影响我们的需要获取结果集的效率问题。

        mysql中有2中文件排序算法:单路排序和双路排序;他们的区别于MYSQL中的max_length_for_sort_date具有相关性;单路算法的排序可以为排序中的每一行创建固定的缓冲区;如果库中出现超大字符串的时候,比如;BLOB,TEXT等可以采用前缀排序的算法,但是其值不能超过参数规定的值大小,在生产环境下,建议采用更多的是单路的排序算法,他可以使磁盘的读写效率更高,sort_merge_passes的值会加大等!以下是相关innodb中给出的提示;

for (i = 0; i < n_index; i++) {row_merge_buf_t*buf= merge_buf[i];merge_file_t*file= &files[i];const dict_index_t*index= buf->index;if (UNIV_LIKELY    (row && row_merge_buf_add(buf, row, ext))) {file->n_rec++;continue;}/* The buffer must be sufficiently largeto hold at least one record. */ut_ad(buf->n_tuples || !has_next);/* We have enough data tuples to form a block.Sort them and write to disk. */if (buf->n_tuples) {if (dict_index_is_unique(index)) {row_merge_dup_tdup;dup.index = buf->index;dup.table = table;dup.n_dup = 0;row_merge_buf_sort(buf, &dup);---row0merge.c文件中的,merge算法中排序的指定



热点排行