私は10^7行以上のMyISAMテーブルを持っています。データを追加するときには、最後に〜10行を更新する必要があります。それらを削除してから新しいものを挿入する方が速いのですか、それともそれらの行を更新する方が速いのですか?更新すべきデータは索引の一部ではありません。インデックス/データ断片化はどうですか?MySQLのパフォーマンスを削除または更新しますか?
答えて
UPDATE
はるかに高速です。
UPDATE
の場合、テーブルレコードは新しいデータで書き直されています。 (あなたがPCTFREE
制限をヒットした場合)あなたDELETE
、
をインデックスを更新する必要があります(あなたが変更する必要がある列だけでなく、あなたが行全体を削除し、覚えている)とデータブロックを移動させても良い
そして、すべてのこれはINSERT
で再度行わなければなりません。
あなたは常に
INSERT ... ON DUPLICATE KEY UPDATE
の代わりREPLACE
を使うべき理由です。
鍵違反の場合は前者はUPDATE
、後者の場合はDELETE
/INSERT
です。
更新が速いです。あなたはまた、より多くの詳細がdocumentation
は論理的= 2アクション、UPDATE = 1つのアクションを追加+ DELETE更新読む
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
についてDUPLICATE KEY UPDATE ON INSERTを使用することができます。また、auto_incrementに新しい変更レコードIDを削除して追加すると、そのレコードに壊れている関係がある場合や、更新が必要な場合もあります。私はUPDATEのために行くだろう。
ここで、Column = 'something'は、検索条件がインデックス内にある限り、インデックスを使用する必要があります(検索またはスキャンが全く異なる問題であるかどうか)。
これらの更新をたくさん行っていますが、基準列にインデックスがない場合は、使用している列にインデックスを作成することをお勧めします。物事をスピードアップするのに役立つはずです。
パフォーマンスのためにデータを削除または更新するのではなく、パーティション化を検討します。
http://dev.mysql.com/doc/refman/5.1/en/partitioning-range.html
これは歴史的にデータを保持し、パフォーマンスを低下させないようになります。
- 1. Laravel mysqlの挿入+削除または更新方法?
- 2. Gridboxの更新または削除C#
- 3. DataTableの削除または更新
- 4. イメージファイルを削除した後、ギャラリーを更新しますか?
- 5. updateAllループバックデータソースは、更新されたデータ内の削除を削除しません。
- 6. Jackrabbitのユーザーをどのように更新または削除しますか?
- 7. イメージからexifサムネイルを削除または更新する
- 8. mysqlは親行を削除または更新できません:外部キー制約は失敗します
- 9. django.db.utils.IntegrityError:レコードを削除するときにテーブルの更新または削除
- 10. NHibernateは行を削除する前に更新しますか?
- 11. リッチテキストボックスからの画像の削除(または更新)
- 12. レコードを削除した後にコンポーネントリストを更新します。
- 13. テーブルの更新または削除を防止する
- 14. Tkinterのツリービューを削除または更新する
- 15. 親行を削除または更新できません:外部キー制約が失敗します - MYSQL
- 16. apache Luceneでドキュメントを削除または更新するには
- 17. JPA:親行を削除または更新できません
- 18. 親行を削除または更新できませんConstraintViolationException
- 19. 親行を削除または更新できませんHibernate
- 20. ElasticSearch:Partialドキュメントを更新または削除します。 ElasticSearchで(アップサートの反対側)
- 21. 挿入、更新または削除を行ったスキーマ
- 22. Mahout - FileDataModel:更新後のファイルを削除しますか?
- 23. superadmin/dbaでテーブルの削除/更新を防止しますか?
- 24. MySQL Intは0を削除します
- 25. GridViewから更新ボタンを削除しますか?
- 26. symfonyでfullCalendarイベントを更新または削除する方法
- 27. Inno Setup:更新または削除/アンインストールを選択するカスタムページ
- 28. Titan DBのスキーマを変更します。削除、更新
- 29. データベースからの更新モデル.edmxはデータベースから削除されたモデル/ colsを更新しませんか?
- 30. ACF Repeaterは更新時に前のエントリを削除します
おい、3分で速かった、それは何の不公平? ) –