Uploaded image for project: 'Percona Toolkit'
  1. Percona Toolkit
  2. PT-362

LP #1199591: pt-table-checksum doesn't use non-unique index with highest cardinality

    XMLWordPrintable

    Details

      Description

      **Reported in Launchpad by Daniel Nichter last update 02-08-2013 19:14:12

      If there are only non-unique index, pt-table-checksum should choose the one with the highest cardinality, but it doesn't. In NIbbleIterator.pm:

      if ( !$best_index && @possible_indexes ) {
      PTDEBUG && _d('No PRIMARY or unique indexes;',
      'will use index with highest cardinality');
      foreach my $index ( @possible_indexes ) {
      $indexes->{$index}->

      {cardinality} = _get_index_cardinality(
      %args,
      index => $index,
      );
      }
      @possible_indexes = sort {
      # Prefer the index with the highest cardinality.
      my $cmp
      = $indexes->{$b}->{cardinality}

      <=> $indexes->{$b}->

      {cardinality}

      ;
      if ( $cmp == 0 ) {

      1. Indexes have the same cardinality; prefer the one with
      2. more columns.
        $cmp = scalar @{$indexes->{$b}->{cols}}
        <=> scalar @{$indexes->{$a}->{cols}};
        }
        $cmp;
        } @possible_indexes;
        $best_index = $possible_indexes[0];
        }

      We need to test that block.

        Attachments

          Activity

            People

            Assignee:
            Unassigned
            Reporter:
            lpjirasync lpjirasync (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Smart Checklist