MySQL

Tu bomo pisali o tem s kakšnimi OS se ukvarjamo in kakšne težave imamo pri tem.

Moderatorji: Kroko, tilz0R

MySQL

OdgovorNapisal/-a s54mtb » 04 Dec 2018, 22:46

Kako lahko pohitrim MySQL bazo?

Koda: Izberi vse
SELECT count(`sensorvalue`) from `sensorvalues` WHERE 1


tole vrne
Koda: Izberi vse
 count(`sensorvalue`)    
3444292


kar sploh ni tako "veliko".

Če delam pa "običajno" poizvedbo nad tabelo, se pa nalaga tudi po 15 sekund.
Za samo poizvedbo uporabljam "view", malo zaradi varnosti, pa še bolj elegantno je relacije ustvarjat.
Koda: Izberi vse
CREATE ALGORITHM=UNDEFINED DEFINER=`xxxx`@`localhost` SQL SECURITY DEFINER VIEW `SensorValuesUpdate` AS select `P`.`_pingid` AS `_pingid`,`P`.`created` AS `created`,`SV`.`_sensorid` AS `_sensorid`,`SV`.`sensorvalue` AS `sensorvalue` from (`sensorvalues` `SV` join `pings` `P` on((`P`.`_pingid` = `SV`.`_pingid`))) order by `P`.`created` desc,`SV`.`_sensorid`


Se kdo spozna na optimizacijo MySQL strežnika?

Kaj bi bilo bolje uporabit za "time series" tabele, ker MySQL očitno ni tako hiter, kot sem mislil. Na starem celeronu z 256M RAMa mi je MySQL v proizvodnji delal neverjetno hitro tudi pri več kot 10M zapisih. Tale sodobna virtualka na SSD s 4 jedri in 4G RAMa pa šteka........ Se priporočam za kak pameten nasvet.
Težava sveta je, da so inteligentni ljudje polni dvomov, medtem ko so neumni polni samozavesti. (Charles Bukowski)
s54mtb
 
Prispevkov: 8436
Pridružen: 15 Jan 2015, 00:10
Zahvalil se je: 1112 krat
Prejel zahvalo: 2721 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 86

Re: MySQL

OdgovorNapisal/-a bray » 04 Dec 2018, 23:09

InfluxDB?
COM port is not dead. It is virtual!
bray
 
Prispevkov: 311
Pridružen: 08 Avg 2016, 21:11
Kraj: Vransko
Zahvalil se je: 64 krat
Prejel zahvalo: 88 krat
Uporabnika povabil: forest70
Število neizkoriščenih povabil: 17

Re: MySQL

OdgovorNapisal/-a s54mtb » 04 Dec 2018, 23:43

S tem imam malo težav, ker mi iz phpja ne uspe zapisovat vanjo. Očitno bom moral res ugriznit v to jabolko.
Težava sveta je, da so inteligentni ljudje polni dvomov, medtem ko so neumni polni samozavesti. (Charles Bukowski)
s54mtb
 
Prispevkov: 8436
Pridružen: 15 Jan 2015, 00:10
Zahvalil se je: 1112 krat
Prejel zahvalo: 2721 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 86

Re: MySQL

OdgovorNapisal/-a xfce » 05 Dec 2018, 00:47

Uf, sem sicer malo delal, ampak vem, da je pomagalo indeksiranje vrednosti, katere sem uporabljal za združevanje tabel. Takrat je šlo iz 15 sek na 0,5 sek :D

imaš te dva polja označena kot indexirana? sensorvalues` `SV` join `pings` `P` on((`P`.`_pingid` = `SV`.`_pingid`))? Mogoče bi lahko prilepil kako imaš narejeno tabelo. Verjetno ti to požre večino časa.
Uporabniški avatar
xfce
 
Prispevkov: 626
Pridružen: 14 Feb 2015, 11:38
Kraj: Poljane nad Škofjo loko
Zahvalil se je: 90 krat
Prejel zahvalo: 178 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 35

Re: MySQL

OdgovorNapisal/-a Carko » 05 Dec 2018, 01:05

Res je najbolje, da pokažeš, kako imaš narejeno tabelo in kakšne poizvedbe točno delaš.

Takoj ko imaš več podatkov, so pravilno postavljeni indeksi nujni.

Iz tega kar si pokazal, je zaenkrat sporen samo tisti ORDER BY, ker polje "created" verjetno ni poindeksirano in mora prebrati vse tri milijone in pol vrstic, da jih lahko razvrsti. Če je "_pingid" primarni ključ in auto-incremented, je bolje sortirati po njem, ker je po defaultu indeksiran. Torej
Koda: Izberi vse
order by `P`.`_pingid` desc
Carko
 
Prispevkov: 1696
Pridružen: 10 Jan 2015, 00:46
Zahvalil se je: 103 krat
Prejel zahvalo: 367 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 99


Vrni se na Operacijski sistemi

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost