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