Hirdetés
- Fotók, videók mobillal
- Samsung Galaxy S25 - végre van kicsi!
- Szívós, szép és kitartó az új OnePlus óra
- EarFun Air Pro 4+ – érdemi plusz
- Hivatalos a OnePlus 13 startdátuma
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- Xiaomi 15 Ultra - kamera, telefon
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Apple iPhone XR - amikor az olcsóbb is drága
- Pebble - az átgondolt okosóra
Új hozzászólás Aktív témák
-
SaNyEe
aktív tag
Sziasztok,
Találkoztam egy érdekes problémával (mysql "újonc" vagyok, Oracle vonalon mozgok alapvetően)
Egy Select rettenet hosszú ideig fut, a problémás selectet "redukáltam" a problémás részre. Ennek explainje a következő:
mysql> explain SELECT a.clock
-> FROM alerts a, events e
-> WHERE e.eventid=a.eventid;
+----+-------------+-------+--------+---------------+---------+---------+------------------+---------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+--------+---------------+---------+---------+------------------+---------+-------------+
| 1 | SIMPLE | a | ALL | alerts_3 | NULL | NULL | NULL | 3723509 | NULL |
| 1 | SIMPLE | e | eq_ref | PRIMARY | PRIMARY | 8 | zabbix.a.eventid | 1 | Using index |
+----+-------------+-------+--------+---------------+---------+---------+------------------+---------+-------------+
2 rows in set (0.00 sec)a tábla alerts_3 indexe nem kerül használatba. A csatolt mezők bigint(20) unsigned típusúak. Baloldali tábla 166 millió, a jobboldali tábla 3,7 milliós rekordmennyiségű.
Not null constraint van mindkét mezőn, de default null be van állítva (5.6 verzió)
A táblák innodb tárolómotort használnakAmikor nincs alerts_3 index használatban a query futási ideje 48sec.
A force index(alerts_3) megadásával 1.65sec-re redukálódik a futási idő.
Statisztikákat ma frissítettem közvetlen tesztelés előtt, azok aktuálisak.Miért nem használja a mysql a rendelkezésére álló indexet? Ott van és mikor kényszerítem, működik.
Miután elkezdtem játszani a selecttel és kivettem a tábla oszlopát (vagy betettem az index-el rendelkező oszlopot) a select clause-ból így alakultunk át:
mysql> explain SELECT a.eventid
-> FROM alerts a, events e
-> WHERE e.eventid=a.eventid;
+----+-------------+-------+--------+---------------+----------+---------+------------------+---------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+--------+---------------+----------+---------+------------------+---------+-------------+
| 1 | SIMPLE | a | index | alerts_3 | alerts_3 | 8 | NULL | 3723507 | Using index |
| 1 | SIMPLE | e | eq_ref | PRIMARY | PRIMARY | 8 | zabbix.a.eventid | 1 | Using index |
+----+-------------+-------+--------+---------------+----------+---------+------------------+---------+-------------+
2 rows in set (0.00 sec)Hogy lehetne a forrás SQL átírása nélkül rábírni a mysql-t, hogy az a.eventid oszlopon is használja az indexet annak ellenére, hogy valóban a tábla minden sora candidate row és jó ötletnek tűnhet első körben felolvasni mindent a blokkokból?
Új hozzászólás Aktív témák
- Milyen monitort vegyek?
- Linux Mint
- Call of Duty: Black Ops 7
- A fociról könnyedén, egy baráti társaságban
- Kerékpárosok, bringások ide!
- Energiaital topic
- Assetto Corsa Rally
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- További aktív témák...
- Update 11.15. - Bomba árak 2025-ben is! Üzleti - Consumer laptopok DELL FUJITSU HP LENOVO
- HIBÁTLAN iPhone 15 Pro Max 256GB Blue Titanium -1 ÉV GARANCIA -Kártyafüggetlen, MS3693, 100% Akksi
- GYÖNYÖRŰ iPhone 13 128GB Starlight- 1 ÉV GARANCIA, Kártyafüggetlen,MS3435
- Samsung Galaxy S23 FE / 8/128GB / Kártyafüggetlen / 12Hó Garancia
- BESZÁMÍTÁS! Gigabyte Z37 i5 9600K 16GB DDR4 512GB SSD RTX 2060 Super 8GB Rampage SHIVA ADATA 600W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


