Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czas trwania usuwania z podzapytaniem
rakso83
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 29.09.2007

Ostrzeżenie: (0%)
-----


Mam mała zagadkę (przynajmniej dla mnei to jest zagadka:) ).

Mam dwie tabelki:
  1. mysql> mysql> SHOW TABLE STATUS;
  2. +------+--------+---------+------------+--------+----------------+-------------+------------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+-----------------------+
  3. | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | AUTO_INCREMENT | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
  4. +------+--------+---------+------------+--------+----------------+-------------+------------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+-----------------------+
  5. | DATA | InnoDB | 10 | Compact | 144563 | 8203 | 1185939456 | 0 | 0 | 0 | 144554 | 2009-03-19 14:45:48 | NULL | NULL | latin1_swedish_ci | NULL | | InnoDB free: 10240 kB |
  6. | test | MyISAM | 10 | Fixed | 1 | 9 | 9 | 2533274790395903 | 2048 | 0 | NULL | 2009-03-19 15:46:18 | 2009-03-19 15:46:18 | NULL | latin1_swedish_ci | NULL | | |
  7. +------+--------+---------+------------+--------+----------------+-------------+------------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+-----------------------+


  1. mysql> DESC DATA;
  2. +-------+------------+------+-----+---------+----------------+
  3. | FIELD | Type | NULL | KEY | DEFAULT | Extra |
  4. +-------+------------+------+-----+---------+----------------+
  5. | id | bigint(20) | NO | PRI | NULL | AUTO_INCREMENT |
  6. | DATA | text | NO | | NULL | |
  7. +-------+------------+------+-----+---------+----------------+


  1. mysql> DESC test;
  2. +-------+------------+------+-----+---------+-------+
  3. | FIELD | Type | NULL | KEY | DEFAULT | Extra |
  4. +-------+------------+------+-----+---------+-------+
  5. | id | bigint(20) | NO | PRI | 0 | |
  6. +-------+------------+------+-----+---------+-------+


W tabelce test mam tylko jeden rekord:
  1. mysql> SELECT * FROM test;
  2. +----+
  3. | id |
  4. +----+
  5. | 50 |
  6. +----+


A teraz to o co mi chodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Czyli dwa zapytania (DELETE):

  1. mysql> DELETE FROM DATA WHERE `id` IN (SELECT id FROM test); Query OK, 0 rows affected (22.50 sec)


  1. mysql> DELETE FROM DATA WHERE `id` IN (50);
  2. Query OK, 0 rows affected (0.13 sec)


Czemu zapytanie z podzapytaniem wykonuje się tak długo? Czy da się je przyśpieszyć? Docelowo wartości w tabelach będą dużo większe (data ok 500000 rekordów, a w test ok 100000).

Macie jakieś pomysły? Dzięki za pomoc!
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 18:28