リレーショナルデータベースは、あるテーブルのフィールドが他のテーブルの行にリンクしているデータベースです。このようなものです。
しかし、Web開発者としての私にとってそれが何を意味するのか理解できません!
私が知っているように、結合とネストされた選択を使用したクエリは、パフォーマンスを低下させる可能性があります(特に、数十の結合を使用したdrupalスタイルのクエリ)。さらに、DBへのクエリはボトルネックであり、選択したすべてのリクエストをキャッシュする必要のあるユーザーがたくさんいます。
すべての選択リクエストをキャッシュする場合は、複雑ではなく単純なリクエストをキャッシュすることをお勧めします。「select*from tbl1 where id=123」と「select*from tbl2 where id=456」または「select*from tbl1、tbl2 where ...」のいずれかをキャッシュできますが、2番目の方法を選択した場合はオブジェクトのすべての組み合わせをキャッシュする必要があります-それはクールではありません。
さて、今は「select * from tbl1 where id = 123」、「select id from tbl1 order by id limit 0、30」のような非常に単純なクエリのみを使用してキャッシュします(または、最初のタイプのクエリのみをキャッシュできます。 )。そこにはクエリがあり、それほど単純ではないINSERT、DELETE、およびUPDATEは、私たちが必要とするすべてのものであり、私たちが使用するすべてのものです!
ご覧のとおり、すべてのリレーショナルロジックは、SQLではなく、アプリケーションのメイン言語になっています。では、なぜこのような関係的なものがすべて必要なのですか?それらはどういう意味ですか?「リレーショナル」タイプには、他のタイプにはないものがありますが、それは必要ですか?リレーショナル機能を使用しない場合、パフォーマンスに関心があるとしても、なぜ誰もがMySQLやその他のリレーショナルデータベースを使用するのでしょうか。
このタイプのデータベースが標準になりました。なんで?私は見当もつかない。GAEのオンを除いて、非リレーショナルデータベースを使用している人のことはほとんど聞いたことがありません。
私は何かが足りないのですか?