11-10-2010, 13:50
Witam,
mam prostą tabele:
co godzinę dorzucam trochę danych do niej poprzednio sprawdzając czy dany rekord już nie istnieje, np. dla danej auto_dataczas=2010-10-11 08:00:00 istnieje ok. 100 rekordów z różnym auto_kod, więc robie:
1) select count(*) from auto where auto_kod=x and auto_dataczas=y
2a) i jezeli count=0 dodaje nowy rekord
2b) jeżeli count=1 rekord istnieje = nie robie nic.
w statusie mySQLa mam bardzo wysokie Handler_read_rnd_next oraz Handler_read_rnd, co mogę zmienić aby obniżyć te wartości????
mam prostą tabele:
Kod:
mysql> describe auto;
+---------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+----------------+
| auto_id | int(11) | NO | PRI | NULL | auto_increment |
| auto_kod | int(11) | NO | MUL | NULL | |
| auto_dataczas | datetime | NO | | NULL | |
| auto_wsa10 | decimal(4,1) | NO | | NULL | |
| auto_wda10 | int(4) | NO | | NULL | |
| auto_ta60s | decimal(4,1) | NO | | NULL | |
| auto_rh60s | decimal(4,1) | NO | | NULL | |
| auto_vis10 | int(4) | NO | | NULL | |
| auto_tg60s | decimal(4,1) | NO | | NULL | |
| auto_tg000 | decimal(4,1) | NO | | NULL | |
| auto_tg005 | decimal(4,1) | NO | | NULL | |
| auto_tg010 | decimal(4,1) | NO | | NULL | |
| auto_tg020 | decimal(4,1) | NO | | NULL | |
| auto_tg050 | decimal(4,1) | NO | | NULL | |
| auto_tg100 | decimal(4,1) | NO | | NULL | |
| auto_pr24h | decimal(4,1) | NO | | NULL | |
+---------------+--------------+------+-----+---------+----------------+
1) select count(*) from auto where auto_kod=x and auto_dataczas=y
2a) i jezeli count=0 dodaje nowy rekord
2b) jeżeli count=1 rekord istnieje = nie robie nic.
w statusie mySQLa mam bardzo wysokie Handler_read_rnd_next oraz Handler_read_rnd, co mogę zmienić aby obniżyć te wartości????