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

mysql/sqlserverでの切り捨てと削除の比較

    削除

    1. DELETEはDMLコマンドです。
    2. DELETEステートメントは行ロックを使用して実行され、テーブル内の各行は削除のためにロックされます。
    3. where句でフィルターを指定できます
    4. 条件が存在する場合、指定されたデータを削除します。
    5. 操作は個別にログに記録されるため、削除するとトリガーがアクティブになります。
    6. ログを保持するため、切り捨てよりも低速です。
    7. ロールバックが可能です。

    切り捨て

    1. TRUNCATEはDDLコマンドです。
    2. TRUNCATE TABLEは常にテーブルとページをロックしますが、各行はロックしません。
    3. WhereConditionは使用できません。
    4. すべてのデータを削除します。
    5. 操作は個々の行の削除をログに記録しないため、TRUNCATETABLEはトリガーをアクティブ化できません。
    6. ログを保持しないため、パフォーマンスが向上します。
    7. ロールバックが可能です。


    • DELETEとTRUNCATEはどちらも、TRANSACTIONとともに使用するとロールバックできます(TRUNCATEはSQL Serverでロールバックできますが、MySQLではロールバックできません)。
    • 自動インクリメントのPKがある場合、切り捨てるとカウンターがリセットされます

    http://beginner-sql-tutorial.com/sql-delete-statement .htm



    1. Linux-PHP 7.0およびMSSQL(Microsoft SQL)

    2. PostgreSQLJDBCを使用した接続プール

    3. リンクされたSQLサーバーのクエリ

    4. `brew servicesstartmysql`と`mysql.serverstart`の違い