データベースにとって、一部のリソース集約型のSQLクエリは、プライマリ/スレーブレプリケーションの長時間遅延や接続切断、さらにはデータベースインスタンスのクラッシュなど、一連のパフォーマンス問題を引き起こす可能性があります。これらの高消費電力なSQLは長時間リソースを占有し、データベースクラスタの同時実行処理能力を低下させます。業務トラフィックが急増した場合(業務自体の成長またはネットワークジッターによるもの)、これらのリソース集約型クエリによりSQLの積み残しが深刻化し、データベース自身の同時実行処理制限を超えてしまう可能性があり、業務の正常な運用に悪影響を及ぼします。
OceanBaseデータベースでは、結合テーブル(JOINテーブル)の数に制限はありませんが、正規表現関連のregexp_substrなど、一部の複雑な関数の使用においては、その実行効率が一般的に低くなるため、業務パフォーマンスに大きな影響を与えます。
データベースを安定して拡張性があり、かつ管理可能なものにするために、業務では基本的な追加、削除、変更、クエリ操作を実行する際には、できるだけシンプルなSQL文を使用することを推奨します。業務におけるSQLが優れているかどうかを測る鍵は、これらのSQL文の簡潔さと、それが合理的なパフォーマンス範囲内であるかどうかです。「合理的な範囲」とは、業務やデータ規模が拡大しても、SQLのパフォーマンスオーバーヘッドが低く安定しており、大量のCPUやI/Oリソースを占有しないことを指します。例えば、主キーに基づいてクエリを実行するSQL文は、少量のデータを処理する場合と、100万件のデータを処理する場合(1件のデータを処理する場合と1000万件のデータを処理する場合)で、パフォーマンスオーバーヘッドの変化が大きくないように設計されています。このようなクエリは安定したパフォーマンスを提供し、業務はその上でトラフィック増加に伴うデータベースのスケールアップニーズを合理的に見込むことができ、将来の業務成長を支えるためのデータベースの信頼性を確保できます。
しかし、業務クエリが複雑なSQL文に大きく依存し、パフォーマンスオーバーヘッドが大きい場合、データベースのフロントエンドやネットワークのわずかな変動でもパフォーマンス問題を引き起こし、SQLの積み残しやインスタンスの同時実行数が急増し、業務の安定性に脅威をもたらす可能性があります。複雑なSQLクエリは、データベースクラスタのパフォーマンス変動を顕著にし、クラスタの同時実行能力を低下させ、業務の管理を困難にする可能性があります。