sql >> データベース >  >> RDS >> Mysql

非常に大量のデータのデータベース設計

    大企業が(一般的に)これにどのように取り組んでいるかについて質問したので:

    彼らは通常、会社が使用するデータベースを生きて呼吸するdba(データベース管理者)を持っています。

    つまり、テーブルを最適に設計する方法、クエリ/インデックス/ OS /サーバーのプロファイルと調整方法から、データベースに問題を引き起こす可能性のあるRAIDコントローラーのファームウェアリビジョンを知る方法まで、すべてを知っている人がいます。

    自分が行ったチューニングの種類についてはあまり話しません。例:

    • MyISAMまたはInnoDBテーブルを使用していますか?それらのパフォーマンス(そして少なくともそれらの機能)は、ワークロードごとに根本​​的に異なります。
    • 実行するクエリに従って、テーブルに適切なインデックスが付けられていますか?
    • すべてのクエリでEXPLAINを実行します。これにより、追加/削除できるキーを特定し、適切なキーが選択されているかどうかを確認し、クエリを比較できます(SQLを使用すると、同じことを実行する方法がたくさんあります)
    • クエリキャッシュを調整しましたか?一部のワークロードでは、クエリキャッシュ(デフォルトはオン)によって大幅な速度低下が発生する可能性があります。
    • ボックスにはどのくらいのメモリがあり、mysqlはこれを利用するように調整されていますか?
    • データベース向けのファイルシステムとRAIDセットアップを使用していますか?
    • 場合によっては、少し非正規化が必要になります。
    • データベース製品が異なれば、特性も異なります。MySQLは、一部の世界では非常に高速で、他の世界では低速である可能性があります。



    1. PerconaはMySQLと下位互換性がありますか? RubyinRailsケース

    2. SQL CURSORを使用するときに、これらの間違いを犯しますか?

    3. 断続的なORA-12519(TNS:適切なハンドラーが見つかりません)エラーの原因

    4. MySQLは、groupbyの後に最初のnull以外の値を取得します