diff --git a/pkg/executor/analyze.go b/pkg/executor/analyze.go index ddfff2f77519c..26acb9ce56bca 100644 --- a/pkg/executor/analyze.go +++ b/pkg/executor/analyze.go @@ -108,8 +108,7 @@ func (e *AnalyzeExec) Next(ctx context.Context, _ *chunk.Chunk) error { // Start workers with channel to collect results. taskCh := make(chan *analyzeTask, concurrency) - resultChLen := min(concurrency*2, len(tasks)) - resultsCh := make(chan *statistics.AnalyzeResults, resultChLen) + resultsCh := make(chan *statistics.AnalyzeResults, 1) for i := 0; i < concurrency; i++ { e.wg.Run(func() { e.analyzeWorker(taskCh, resultsCh) }) } diff --git a/pkg/executor/analyze_col_v2.go b/pkg/executor/analyze_col_v2.go index 40a96efec1afa..6faa8e0f529a4 100644 --- a/pkg/executor/analyze_col_v2.go +++ b/pkg/executor/analyze_col_v2.go @@ -275,8 +275,8 @@ func (e *AnalyzeColumnsExecV2) buildSamplingStats( sc := e.ctx.GetSessionVars().StmtCtx // Start workers to merge the result from collectors. - mergeResultCh := make(chan *samplingMergeResult, samplingStatsConcurrency) - mergeTaskCh := make(chan []byte, samplingStatsConcurrency) + mergeResultCh := make(chan *samplingMergeResult, 1) + mergeTaskCh := make(chan []byte, 1) var taskEg errgroup.Group // Start read data from resultHandler and send them to mergeTaskCh. taskEg.Go(func() (err error) {