Optimizing SELECT Statements For faster execution, MySQL always uses inverse aggregation when it is safe: •For floating-point values, inverse aggregation is not always safe and might result in loss of precision. The default is to avoid inverse aggregation, which is slower but preserves precision. If it is permissible to sacrifice safety for speed,  windowing_use_high_precision  can be disabled to permit inverse aggregation. •For nonfloating-point data types, inverse aggregation is always safe and is used regardless of the windowing_use_high_precision  value. • windowing_use_high_precision  has no effect on  MIN()  and  MAX() , which do not use inverse aggregation in any case. 1692 In such cases, rewriting the row constructor expression using an equivalent nonconstructor expression may result in more complete index use. For the given query, the row constructor and equivalent nonconstructor expressions are: The optimizer is less likely to use available indexes if the row constructor columns do not cover the prefix of an index. Consider the following table, which has a primary key on  (c1, c2, c3) : In this query, the  WHERE  clause uses all columns in the index. However, the row constructor itself does not cover an index prefix, with the result that the optimizer uses only  c1  ( key_len=4 , the size of  c1 ): In addition, the optimizer handles both expressions the same way. Row constructors permit simultaneous comparisons of multiple values. For example, these two statements are semantically equivalent: For  EXPLAIN , windowing execution plan information is too extensive to display in traditional output format. To see windowing information, use  EXPLAIN FORMAT=JSON  and look for the  windowing  element. For evaluation of the variance functions  STDDEV_POP() ,  STDDEV_SAMP() ,  VAR_POP() ,  VAR_SAMP() , and their synonyms, evaluation can occur in optimized mode or default mode. Optimized mode may produce slightly different results in the last significant digits. If such differences are permissible, windowing_use_high_precision  can be disabled to permit optimized mode. 8.2.1.22 Row Constructor Expression Optimization SELECT * FROM t1 WHERE (column1,column2) = (1,1); SELECT * FROM t1 WHERE column1 = 1 AND column2 = 1; CREATE TABLE t1 ( c1 INT, c2 INT, c3 INT, c4 CHAR(100), PRIMARY KEY(c1,c2,c3) ); mysql>  EXPLAIN SELECT * FROM t1 WHERE c1=1 AND (c2,c3) > (1,1)\G *************************** 1. row *************************** id: 1 select_type: SIMPLE table: t1 partitions: NULL type: ref possible_keys: PRIMARY key: PRIMARY key_len: 4 ref: const rows: 3 filtered: 100.00 Extra: Using where