sql >> データベース >  >> Database Tools >> phpMyAdmin

MySql-WAMP-巨大なテーブルは非常に遅い(2000万行)

    いくつかの答え:

    • 2,000万行はMySQLの機能の範囲内です。私は、テーブルの1つに5億を超える行があるデータベースで作業しています。テーブルの再構築には数時間かかる場合がありますが、インデックスによって支援されている限り、通常のクエリは問題になりません。

    • あなたのラップトップはかなり時代遅れであり、大規模なデータベースサーバーとして使用するには十分な能力がありません。テーブルの再構築には長い時間がかかります。メモリの量が少なく、通常はラップトップディスクが遅いことが、おそらく制約になっています。おそらく、非常に古いコンピューターで動作するように設計されたMySQLのデフォルト設定も使用しています。

    • TEXTの使用はお勧めしません すべてのデータ型 桁。 TEXTが必要な理由はありません それらの列のほとんどについて。

    • 特にTEXTの使用を主張する場合は、すべての列にインデックスを作成しないでください。 データ型。 TEXTにインデックスを付けることさえできません プレフィックスインデックスを定義しない限り、列 。一般に、特定のクエリをサポートするインデックスを選択します。

    上記に基づいて他にも多くの質問があるかもしれませんが、1つのStackOverflow投稿でカバーするには多すぎます。データベースを使用する場合は、トレーニングを受けたり、本を読んだりすることをお勧めします。
    高性能MySQL、第2版

    フォローアップの質問について:

    MySQLチューニングについては、ここから始めるのが良いでしょう: http://www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/

    多くのALTERTABLE操作により、テーブルが再構築されます。つまり、基本的にテーブルをロックし、変更を適用してテーブル全体のコピーを作成し、新しいテーブルと古いテーブルの名前を変更して、古いテーブルを削除します。テーブルが非常に大きい場合、これには長い時間がかかる可能性があります。

    TEXTデータ型は最大64KBを格納できますが、これは電話番号や州にとってはやり過ぎです。私は典型的な米国の電話番号にCHAR(10)を使用します。米国の州ではCHAR(2)を使用します。一般に、特定の列で必要なデータの範囲をサポートする最もコンパクトで節約的なデータ型を使用します。



    1. phpmyadminを使用して大規模なデータベースをmysqlにインポートする簡単な方法は何ですか?

    2. PHPmyAdminのデフォルトデータベース

    3. 保存されていないSQLクエリスクリプトを回復する

    4. フィールドmysqlから最初の20文字以降の文字を選択する方法