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