Я использую прокси sql версия 2.0.12, мультиплексирование включено. У нас есть некоторый набор запросов на обновление, которые выполняются каждую секунду, за которыми следует SELECT ROW_COUNT () для каждого обновления. Точно так же вставки, за которыми следует select last_insert_id () Таким образом, проблема в том, что иногда я получаю правильные значения, иногда row_count просто выдает -1, мне здесь не хватает какой-то конфигурации.
Пример запроса:
mysql> update t1 set c1=10;
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql> SELECT ROW_COUNT();
+-------------+
| ROW_COUNT() |
+-------------+
| 4 |
+-------------+
1 row in set (0.00 sec)
mysql> update t1 set c1=8;
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql> SELECT ROW_COUNT();
+-------------+
| ROW_COUNT() |
+-------------+
| -1 |
+-------------+
1 row in set (0.00 sec)
Мультиплексные переменные:
mysql> select * from global_variables where variable_name like '%multi%';
+--------------------------------------+----------------------+
| variable_name | variable_value |
+--------------------------------------+----------------------+
| mysql-client_multi_statements | true |
| mysql-connection_delay_multiplex_ms | 0 |
| mysql-multiplexing | true |
| mysql-auto_increment_delay_multiplex | 5 |
| mysql-keep_multiplexing_variables | tx_isolation,version |
+--------------------------------------+----------------------+
5 rows in set (0.01 sec)
mysql>
MySQl правила запроса:
20 is the read hostgroup and 10 is write hostgroup
mysql> select rule_id,active,destination_hostgroup,match_pattern,multiplex from mysql_query_rules;
+---------+--------+-----------------------+------------------------+-----------+
| rule_id | active | destination_hostgroup | match_pattern | multiplex |
+---------+--------+-----------------------+------------------------+-----------+
| 1 | 1 | 20 | ^SELECT | 1 |
| 2 | 1 | 10 | ^SELECT .* FOR UPDATE$ | 1 |
+---------+--------+-----------------------+------------------------+-----------+
4 rows in set (0.00 sec)
mysql>