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.
Making raw materials do something useful since 1969.
s54mtb
 
Prispevkov: 8644
Pridružen: 15 Jan 2015, 00:10
Zahvalil se je: 1149 krat
Prejel zahvalo: 2818 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 103

Re: MySQL

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

InfluxDB?
COM port is not dead. It is virtual!
bray
 
Prispevkov: 313
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.
Making raw materials do something useful since 1969.
s54mtb
 
Prispevkov: 8644
Pridružen: 15 Jan 2015, 00:10
Zahvalil se je: 1149 krat
Prejel zahvalo: 2818 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 103

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: 644
Pridružen: 14 Feb 2015, 11:38
Kraj: Poljane nad Škofjo loko
Zahvalil se je: 92 krat
Prejel zahvalo: 191 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 38

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: 1743
Pridružen: 10 Jan 2015, 00:46
Zahvalil se je: 107 krat
Prejel zahvalo: 373 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 100


Vrni se na Operacijski sistemi

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 0 gostov