#### 15.20.6.5 Adapting DML Statements to memcached Operations

 Benchmarks suggest that the `daemon_memcached` plugin speeds up [DML](glossary.html#glos_dml) operations (inserts, updates, and deletes) more than it speeds up queries. Therefore, consider focussing initial development efforts on write-intensive applications that are I/O-bound, and look for opportunities to use MySQL with the `daemon_memcached` plugin for new write-intensive applications.

 Single-row DML statements are the easiest types of statements to turn into `memcached` operations. `INSERT` becomes `add`, `UPDATE` becomes `set`, `incr` or `decr`, and `DELETE` becomes `delete`. These operations are guaranteed to only affect one row when issued through the **memcached** interface, because the *`key`* is unique within the table.

 In the following SQL examples, `t1` refers to the table used for **memcached** operations, based on the configuration in the `innodb_memcache.containers` table. `key` refers to the column listed under `key_columns`, and `val` refers to the column listed under `value_columns`.

```
INSERT INTO t1 (key,val) VALUES (some_key,some_value);
SELECT val FROM t1 WHERE key = some_key;
UPDATE t1 SET val = new_value WHERE key = some_key;
UPDATE t1 SET val = val + x WHERE key = some_key;
DELETE FROM t1 WHERE key = some_key;
```

 The following [`TRUNCATE TABLE`](truncate-table.html) and [`DELETE`](delete.html) statements, which remove all rows from the table, correspond to the `flush_all` operation, where `t1` is configured as the table for **memcached** operations, as in the previous example.

```
TRUNCATE TABLE t1;
DELETE FROM t1;
```

