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?