Mysql の複数フィールドの大きなテーブルに対するいくつかの最適化方法の紹介

零下一度
リリース: 2017-04-22 15:07:44
オリジナル
1116 人が閲覧しました

int varchar text フィールドを含む 30 個のフィールドを含むビッグ データ テーブルがあり、これらは毎日追加されます。よく検索されるフィールドは 10 個あります。 int  varchar text 字段都有,1000W+数据,每天都会增加,经常搜索的字段有10个,这个怎么优化?

请教了一个人,才得到差不多的答案,感觉这种问题有点假,现实中基本不会出这种问题吧?

优化方案:
主从同步+读写分离:
这个表在有设备条件的情况下,读写分离,这样能减少很多压力,而且数据稳定性也能提高

纵向分表:
根据原则,每个表最多不要超过5个索引,纵向拆分字段,将部分字段拆到一个新表

通常我们按以下原则进行垂直拆分:(先区分这个表中的冷热数据字段)
把不常用的字段单独放在一张表;
textblob

ある人に相談したところ、似たような答えが返ってきましたが、このような質問は現実には基本的に起こりませんよね。

最適化計画:

マスター/スレーブ同期 + 読み取り/書き込み分離:
このテーブルは、機器の条件がある場合に読み取りと書き込みを分離できるため、多くの負荷が軽減され、データの安定性が向上します

垂直分割テーブル:
原則によれば、各テーブルには5つを超えるインデックスを持たせてはならず、フィールドを垂直に分割し、いくつかのフィールドを新しいテーブルに分割する必要があります

通常、次の原則に従って垂直分割を実行します: (最初にホットとコールドを区別します)このテーブルのデータ フィールド)

使用頻度の低いフィールドを別のテーブルに配置します。🎜textblob などの大きなフィールドを添付のテーブルに分割します。🎜頻繁にそれらを結合します。 🎜🎜欠点は、多くのロジックを書き直す必要があり、多大な作業負荷がかかることです。 🎜🎜🎜テーブル パーティショニングを使用する: 🎜🎜これは、再書き込みロジックなどを必要としない、推奨されるソリューションです。テーブル パーティショニングは、同じディスク上の異なるフォルダーにテーブル データがあることと同等です。クエリ速度を大幅に向上させることができます。 🎜🎜🎜 水平テーブル分割: 🎜🎜 1000W のデータは非常に多く、バックアップの際に運用とメンテナンスに負担がかかります。そのため、単一のテーブルのバックアップには長い時間がかかるため、状況に応じて水平テーブル分割を実行できます。各テーブルにはどれくらいのデータが含まれているか? 🎜🎜何か間違っている点がありましたら、ご指摘ください、よろしくお願いします。 🎜

以上がMysql の複数フィールドの大きなテーブルに対するいくつかの最適化方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート