私は非常に重い書き込み集中テーブル(ユーザ追跡テーブル)を持っており、ノンストップで書かれています。問題は完全に正規化されたスキーマにあります。16個の外部キーがあります。いくつかのキーは純粋にルックアップ参照のためのもので、いくつかはユーザーID、ユーザーセッションID、アクティビティIDなどをリンクするようなものです。私の書き込みテーブルからすべてのFKを削除する
このように多くのFKが書き込み集中テーブルのパフォーマンスに問題があります。 (私はリアルタイムの更新に近い必要があるユーザーコンテンツのWebサイトを持っています)。だから私はこれらの集中的なテーブルを書くためにすべてのFKを落とすことを計画しているが、その前に私は他にどのように私がデータをリンクすることができますか知りたい?人々がコード内で言うとき、私たちがアプリケーション内で関係を持つことはできないと仮定して、データをリンクした状態に保つためにコードレベルで正確に何をしていますか?
第2に、FKを使用しないと、corect IDが書かれている限り、データはまだ一貫していると思いますか?何らかの理由でFKが使用されていない場合、メンバーIDが2000の場合と違って3000を書き込むでしょうか?
最後に、これは正しく結合に影響しませんか?私は結合を避けることを望みますが、私はいくつか必要とするかもしれません。しかし、私はFKsまたは結合されていないと仮定することができますか?
my.cnfにforeign_key_checks = 0を追加して再起動できます。これにより、テーブルの制約検証ステップはスキップされます。必要に応じて、セッションごとに設定することもできます。 – shantanuo