Go prepare statment超过mysql最大数

mysql_stmt_prepare failed! error(1461)Can't create more than max_prepared_stmt_count statements (current value: 16382)

给出的回复如下:

max_prepared_stmt_count参数限制了同一时间在mysqld上所有session中prepared 语句的上限。

它的取值范围为“0 - 1048576”,默认为16382。

mysql对于超出max_prepared_stmt_count的prepare语句就会报1461的错误。

调试语句:

mysql> show global status like '%stmt%';

+----------------------------+--------+

| Variable_name | Value |

+----------------------------+--------+

| Binlog_stmt_cache_disk_use | 0 |

| Binlog_stmt_cache_use | 0 |

| Com_stmt_close | 142593 |

| Com_stmt_execute | 170302 |

| Com_stmt_fetch | 0 |

| Com_stmt_prepare | 157761 |

| Com_stmt_reprepare | 0 |

| Com_stmt_reset | 0 |

| Com_stmt_send_long_data | 0 |

| Prepared_stmt_count | 4 |

+----------------------------+--------+

10 rows in set (0.06 sec)

mysql> set global max_prepared_stmt_count=124000;

Query OK, 0 rows affected (0.00 sec)