удаление записи из таблицы memory

Buldozer

Новичок
удаление записи из таблицы memory

есть таблица:
PHP:
mysql> describe orders_cache;
+-------------+---------------------+------+-----+---------+-------+
| Field       | Type                | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+-------+
| user_id     | int(10) unsigned    | NO   | MUL |         |       |
| customer_id | int(10) unsigned    | NO   | MUL |         |       |
| order_id    | int(10) unsigned    | NO   | MUL |         |       |
| geo         | tinyint(3) unsigned | NO   | MUL |         |       |
| cat         | tinyint(3) unsigned | NO   | MUL |         |       |
| tis         | int(10) unsigned    | NO   | MUL |         |       |
| pr          | tinyint(3) unsigned | NO   | MUL |         |       |
| queue       | int(11)             | NO   | MUL |         |       |
| sns         | int(10) unsigned    | NO   |     |         |       |
| balance     | int(11)             | NO   | MUL |         |       |
+-------------+---------------------+------+-----+---------+-------+

mysql> show index from orders_cache;
+--------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table        | Non_unique | Key_name    | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+--------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| orders_cache |          1 | user_id     |            1 | user_id     | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
| orders_cache |          1 | customer_id |            1 | customer_id | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
| orders_cache |          1 | order_id    |            1 | order_id    | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
| orders_cache |          1 | geo         |            1 | geo         | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
| orders_cache |          1 | cat         |            1 | cat         | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
| orders_cache |          1 | tis         |            1 | tis         | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
| orders_cache |          1 | pr          |            1 | pr          | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
| orders_cache |          1 | queue       |            1 | queue       | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
| orders_cache |          1 | balance     |            1 | balance     | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
+--------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
удаляю из таблицы записи у которых customer_id = 4295

PHP:
mysql> select count(*) from orders_cache where customer_id = 4295;
+----------+
| count(*) |
+----------+
|      127 |
+----------+

mysql> delete from orders_cache where customer_id = 4295;
Query OK, 1 row affected (0.04 sec)

mysql> select count(*) from orders_cache where customer_id = 4295;
+----------+
| count(*) |
+----------+
|      126 |
+----------+
=-0, если сменить тип таблицы на MyISAM, то все нормально(разом все записи) - это фича такая для MEMORY?

-~{}~ 30.09.07 01:26:

p.s. причем в случае использования стандартных хэш-индексов для MEMORY такой проблемы не возникает - только на BTREE... но мне последний не подходит, т.к. индексы дублируются :((.
 

Buldozer

Новичок
хм, а там патч к 4.1 лежит а у меня 5.0.41

а в http://bugs.mysql.com/bug.php?id=23764 вообще вроде как обещали это еще год назад исправить для 5-й версии.
 
Сверху