MENU

333を超えるとパフォーマンスは落ちる

引き続きMySQLの話。

100万件を超えるデータを処理するとどうしても時間がかかる。
ひとつのデータから複数のテーブルを作る。
それぞれの複数のテーブルから再びテーブルを作る。

こんなことを繰り返すとテーブルの数がどんどん増えてくる。

1秒でも速く処理するために、いろいろクエリーを工夫する。
ところが、ある時、いきなりパフォーマンスが落ちた。

ん?おかしい。

で、マニュアルを入念に読むと、そこにはテーブルが333個を超えると
パフォーマンスが急激に落ちると書いてある。

数えてみたらテーブル数は340個にもなっていた。
データベース越しにクエリーを記述するのがおっくうになっていたため、
同じデータベースにたくさんのテーブルを作成してしまっていたのだ。

まさかね。こんなに増えるとは…。(^_^;)

それに加えて、次も反省点。

オラクルからMySQLへのDBを移送した際、フィールドタイプがデシマルになっていた。
当初は、なんにも気にしなかった。

ところがである。

処理時間があまりに遅いのでテーブルの容量を見たら、12ギガもある!?

え?

よくよく調べてみると、デシマルというフィールドタイプは、MySQLではアンパックの浮動小数点!
0でさえ、浮動小数点の情報を保持しているから容量は増える。

これじゃあ、フロートタイプの浮動小数点のほうがマシ。(パックしてるからね。)

実際に小数点以下のデータはない。
だからInt形式に変換してみた。

すると12ギガのデータが2ギガに激減。
当然、処理速度はめっちゃ速くなった。

今回の反省点。
オラクルからMySQLへの変換時にはフィールドタイプに注意すること。

📢 勉強会のお知らせ(8/22)

2013年から70回以上開催。

生成AI・SEO・アクセス解析を実践で学ぶ勉強会です。

参加者募集中!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次