Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Tabela od skoro 100m redova, ubrzati SUM sa group by?

[es] :: MySQL :: Tabela od skoro 100m redova, ubrzati SUM sa group by?

Strane: 1 2

[ Pregleda: 3631 | Odgovora: 25 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

svepomalo

Član broj: 306404
Poruke: 196



+21 Profil

icon Re: Tabela od skoro 100m redova, ubrzati SUM sa group by?19.09.2022. u 18:00 - pre 19 meseci
Citat:
bogdan.kecman:
pa zavisi kako ti se ponasa baza, kako ti se ponasa server, kolika je baza etc ... vidim 4k konekcija a samo jedan bufferpool
pogledaj npr: https://www.percona.com/blog/2...tances-do-you-need-in-mysql-8/

da li si siguran da ti "innodb_flush_method = O_DIRECT" treba? da li si probao kako se ponasa bez njega, na raznim kernelima i fajl sistemima ume da radi bolje bez... meni na hz-u radi bolje bez toga

"isamchk" -> nemoj me zezas da i dalje imas myisam tabele negde?

io capacity mi deluje mali .. ne znam jel to dedicated masina za mysql ili ?

sve u svemu ne vidim nista znacajno lose tu


myisam je default u fajlu, ne koristim :)

4K konekcija, imam na serveru vise phpova koji se izvrsavaju paraelno i svaki zahteva konekciju ka bazi, otud i taj 4K, kako da namestim vise bufferpool?

io capacity, dedicate je masina, ima neka mala app, za statistiku samo, ovo je nvme ssd, ne znam koliko da stavim?

Za innodb_flush_method, nema pojma, sta drugo da stavim pa da vidim? :)

Hvala ti puno, svaki put kad pitam nesto, naucim i nesto novo :)
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: Tabela od skoro 100m redova, ubrzati SUM sa group by?19.09.2022. u 18:49 - pre 19 meseci
pa ako ne koristis myisam izbaci sve vezano za myisam iz konfiga, sta ce ti ... io capacity - pogledaj https://dev.mysql.com/doc/refm.../optimizing-innodb-diskio.html

pool za php je smor :( ... realno php je smor ... mozes php-u da napravis persistent konekcije ali to ima svoje dodatne probleme .. iskreno ja sam php prestao da gledam ima bar decenija, nemam pojma :( nisam video server sa php-om bar deceniju, mozda @nkrgovic moze tu da pomogne njega zovem kada mora neki php da se namesti :)

za innodb_flush_method .. samo zakomentarises liniju, resnes server i gledas kako se ponasa, pratis ioload na masini, valjda imas neki monitoring, ako nemas bar sturi sar .. vidi kako se ponasa sa zakomentarisanim i sa odirect pa odluci kako dalje :) ..



 
Odgovor na temu

nkrgovic
Nikola Krgović
Beograd

Član broj: 3534
Poruke: 2807

ICQ: 49345867
Sajt: https://www.twinstarsyste..


+655 Profil

icon Re: Tabela od skoro 100m redova, ubrzati SUM sa group by?19.09.2022. u 19:17 - pre 19 meseci
Ne znam sta tacno PHP tu uopste radi, ali ako mu je upit spor iz MySQL prompta toliko da radi 28s, moze PHP da doda i 300ms nece se osetiti :) .

Ako postoji znacajna razlika u brzini kad se radi iz PHP-a i kad se radi iz prompt-a to cemo da resimo :). Samo onda treba info : Da li se iz PHP-a upit pusta kao SQL kroz mysqli/pdo ili kroz ORM? Posto ja i PHP ORM-ovi imamo tihi rat - zbog njihove "pameti".
Please do not feed the Trolls!

Blasphemy? How can I blaspheme? I'm a god!'
 
Odgovor na temu

svepomalo

Član broj: 306404
Poruke: 196



+21 Profil

icon Re: Tabela od skoro 100m redova, ubrzati SUM sa group by?19.09.2022. u 20:28 - pre 19 meseci
Citat:
bogdan.kecman:
pool za php je smor :( ... realno php je smor ... mozes php-u da napravis persistent konekcije ali to ima svoje dodatne probleme .. iskreno ja sam php prestao da gledam ima bar decenija, nemam pojma :( nisam video server sa php-om bar deceniju, mozda @nkrgovic moze tu da pomogne njega zovem kada mora neki php da se namesti :)


Pa zasto Bogdane tako? :D
70% i vise sajtova se vrti na php-u :D

Vazi, proveravam :)


Citat:
nkrgovic:
Ne znam sta tacno PHP tu uopste radi, ali ako mu je upit spor iz MySQL prompta toliko da radi 28s, moze PHP da doda i 300ms nece se osetiti :) .

Ako postoji znacajna razlika u brzini kad se radi iz PHP-a i kad se radi iz prompt-a to cemo da resimo :). Samo onda treba info : Da li se iz PHP-a upit pusta kao SQL kroz mysqli/pdo ili kroz ORM? Posto ja i PHP ORM-ovi imamo tihi rat - zbog njihove "pameti".


I ja ne koristim ORM :D
mysqli je lagano :)
Isto mu dodje iz prompt-a i php-a :)
 
Odgovor na temu

nkrgovic
Nikola Krgović
Beograd

Član broj: 3534
Poruke: 2807

ICQ: 49345867
Sajt: https://www.twinstarsyste..


+655 Profil

icon Re: Tabela od skoro 100m redova, ubrzati SUM sa group by?19.09.2022. u 20:40 - pre 19 meseci
Citat:
Isto mu dodje iz prompt-a i php-a :)

Onda ti PHP nije usko grlo, sta god da si mu radio.
Please do not feed the Trolls!

Blasphemy? How can I blaspheme? I'm a god!'
 
Odgovor na temu

svepomalo

Član broj: 306404
Poruke: 196



+21 Profil

icon Re: Tabela od skoro 100m redova, ubrzati SUM sa group by?31.10.2022. u 14:55 - pre 18 meseci
Da ne otvoraram novu temu, imam problem sa deadlock.

Ovo je tabela:
Code:

+---------+---------------------+------+-----+---------+----------------+
| Field   | Type                | Null | Key | Default | Extra          |
+---------+---------------------+------+-----+---------+----------------+
| id      | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| keyword | varchar(255)        | NO   | UNI |         |                |
| found   | bigint(20) unsigned | NO   | MUL | 0       |                |
+---------+---------------------+------+-----+---------+----------------+
3 rows in set (0.001 sec)

+-----------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table           | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-----------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| tw_keywords_bio |          0 | PRIMARY  |            1 | id          | A         |     9199931 |     NULL | NULL   |      | BTREE      |         |               |
| tw_keywords_bio |          0 | keyword  |            1 | keyword     | A         |     9199931 |     NULL | NULL   |      | BTREE      |         |               |
| tw_keywords_bio |          1 | found    |            1 | found       | A         |       12415 |     NULL | NULL   |      | BTREE      |         |               |
+-----------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

Index found je zbog sort-a, keyword jer treba da je unique, otuda i ovaj insert dole.
Malo date:
Code:

+----------+---------+---------+
| id       | keyword | found   |
+----------+---------+---------+
|       62 | the     | 3469039 |
|        7 | and     | 3331014 |
|      138 | of      | 2861001 |
|      219 | de      | 2482971 |
| 10373560 | ?       | 2053714 |
|       37 | to      | 1943019 |
|       17 | in      | 1769611 |
|      125 | for     | 1711614 |
|      104 | my      | 1178274 |
|      164 | is      | 1106454 |
+----------+---------+---------+



I insert query:
Code:

Query error: Deadlock found when trying to get lock; try restarting transaction - Invalid query: INSERT INTO `tw_keywords_bio` (`keyword`, `found`) VALUES ('lieutenant', 1), ('governor', 1), ('of', 1), ('pennsylvania.', 1), ('democratic', 1), ('nominee,', 1), ('united', 1), ('states', 1), ('senate', 1) DUPLICATE KEY UPDATE `found` = `found` + 1;



Naime trebam da upisem ove urlove, koliko je puta je taj neki keyword nadjen.
To je neki scrapper, dobijam datu u json-u, uzmem description, pokupim sve reci iz stringa i onda upis u bazu.
Trenutno imam 10.41M rows a table space je: 1.7 GiB

Jel ima neko bolje resenje?
 
Odgovor na temu

[es] :: MySQL :: Tabela od skoro 100m redova, ubrzati SUM sa group by?

Strane: 1 2

[ Pregleda: 3631 | Odgovora: 25 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.