2017-06-09 1 views
0

200以上のフィールドで50,000を超えるレコードを挿入する必要があり、挿入URLを並べて項目を1つずつ一致させることが重要であるかどうか疑問に思っています。時間は重要ではありません。例えば、。mysqlの挿入項目の順番が挿入の速度に影響します

INSERT INTO `wp_realty_listingsdb` (`id`,`fname`,`lname, `age`) 
    values(Joe,Jordan,21); 

    INSERT INTO `wp_realty_listingsdb` (`id`,`age, fname`,`lname) 
    values(1,21,Joe,Jordan); 


    To clarify here is the layout of the data base.. 
    Field 1 = fname 
    Field 2 = lname 
    Field 3 = age 

ので、DBは左から右にレイアウトされたフィールドを持っていますが、第2の挿入に見ることができるようにフィールドの順序は、入力されたデータと一致するしかし唯一のトップインサートは、データベースの順序と一致左から右へ。 ストーリーの士気2番目のデータとして膨大な量のデータが配置されています。データの迅速な並べ替えがdbの順序に一致すると、測定可能な時間や無駄を省くことができます。

Psychollogicallyそれは私が200バケツを並べて、バケツにドングリの中に落ちるように私はそれらが速くなるようになるように思える..私はバケット155に落として、バケツ3に戻って来る必要はありません... LOL ..

単純な例では、スピードは問題ありませんが、50,000個のドングリと200個のバケツがあります。誰もわからない場合は、セットアップして確実にテストします。

+0

私はまだリファレンスを持っていません。しかし、私はこれがスピードに何らかの影響を与えることを真剣に疑っています。同じ順序でフィールドを配置しても、dbエンジンはチェックしてテーブルフィールドへのマッピングを行う必要があるためです。マップが完了すると、挿入はすべての行で同じになります。 –

+0

実際のテーブルオーダーはわずかに速くなります。あなたの最初の例では、IDを挿入していないので、あなたはそれがauto genに設定されていると信じています。 2番目のIDを指定します。それはちょっと混乱します。 50,000行しか挿入していない場合は、ミリ秒単位で最適化することについてはあまり心配しません。特にそれが1回の事件ならば。 –

+0

答えが必要な情報を提供した場合は、答えの左側にある緑色のチェックマークをクリックして受け入れてください。これはあなたの質問が永遠に未解決のままではなく、あなたを助けた人にあなたの感謝を示す一形式であることを確認します。 –

答えて

0

フィールドをスワップするとスピードに影響はないと思います。あなたの例#2よりも高速であるshownbelowとして単一のクエリを実行できるように再配置し、あなたの値は、例えば、#1のように元の順序と一致するようにした方がよいでしょう

example#1 
INSERT INTO wp_realty_listingsdb (`id`,`fname`,`lname`, `age`) VALUES(1,'Joe','Jordan',21),(2,'Joe','Jordan',21); 

example#2 
INSERT INTO `wp_realty_listingsdb` (`fname`,`lname`, `age`) values('Joe','Jordan',21); 
INSERT INTO `wp_realty_listingsdb` (`id`,`age`, `fname`,`lname`) values(1,21,'Joe','Jordan'); 

また、GUIアプリケーションを使用してアップロードする代わりに、MySQLコンソールからSQLファイルとしてレコードをインポートする方がよいでしょう。 以下のコマンドを使用して、ファイルをMySQLコンソールからインポートすることができます。

mysql>use yourdbname; 
mysql>source /path/to/sql/file.sql 
関連する問題