MacBook Pro の MySQL に 5 億 500 万行のテーブルを実装しようとした試みに関する最新情報: 与えられたアドバイスに従って、テーブル tr をパーティション分割しました。
i UNSIGNED INT NOT NULL,
j UNSIGNED INT NOT NULL,
A FLOAT(12,8) NOT NULL,
nu BIGINT NOT NULL,
KEY (nu), key (A)
nu の範囲で。nu は実数である必要がありますが、精度が 6 dp しかなく、nu の最大値が 30000 であるため、10^8 を掛けて BIGINT にしました。 MySQL テーブルを分割します。とにかく、15 個のパーティションがあります (p0: nu<25,000,000,000、p1: nu<50,000,000,000 など)。これにより、典型的な SELECT が高速化されるはずだと考えていました。
SELECT * FROM tr WHERE nu>95000000000 AND nu<100000000000 AND A.>1.
関連するパーティション内のデータのみで構成されるテーブルに対する同じクエリの順序の何かに (<30 秒)。ただし、パーティション内のクエリの行を返すには 30 分以上かかり、クエリが 2 つの (連続する) パーティションにまたがる行の場合はその 2 倍になります。15 個の異なるテーブルを用意して、それらを個別にクエリできることはわかっていますが、これをパーティションで「自動的に」行う方法はありますか? 誰か提案がありますか?