mysql maxpreparedstmtcount_NodeJs Mysql Cant't create more than max_prepared_stmt_count statements
這陣子碰到一個(gè)數(shù)據(jù)庫(kù)上的問題,一個(gè)剛上線不到一周的 NodeJs 接口服務(wù)里所有的查詢?nèi)慷紥斓袅?#xff0c;接口一直處于 pending 狀態(tài),看了下 pm2 的日志發(fā)現(xiàn)了報(bào)錯(cuò):Cant't create more than max_prepared_stmt_count statements,重啟 Node 服務(wù)后接口查詢恢復(fù)正常。
網(wǎng)上查了查資料基本上都是讓修改?max_prepared_stmt_count 的,當(dāng)時(shí)覺得這個(gè)方案治標(biāo)不治本就沒有采納,后來優(yōu)化了一下MySQL的部分代碼就讓服務(wù)繼續(xù)跑著,后來又一周左右的時(shí)間服務(wù)又掛掉了。
CTO 也沒碰到過這個(gè)問題然后幾經(jīng)搜索,最后發(fā)現(xiàn)了一個(gè)非??孔V的解決方案。
語(yǔ)句問題,舉例:
query(`SELECT nickname FROM users WHERE id = ${id} AND age = ?`, [age])
是因?yàn)檎Z(yǔ)句中引入了變量導(dǎo)致的,我一般只有把需要轉(zhuǎn)義的部分用問號(hào)填充,不需要轉(zhuǎn)移的都是放到變量里的。
統(tǒng)一改成下面這種方式以后
query(`SELECT nickname FROM users WHERE id = ? AND age = ?`, [id, age])
截至目前為止服務(wù)跑的穩(wěn)定很多,已經(jīng)跑了半個(gè)月左右了。
總結(jié)
以上是生活随笔為你收集整理的mysql maxpreparedstmtcount_NodeJs Mysql Cant't create more than max_prepared_stmt_count statements的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux mysql 性能提高,高手心
- 下一篇: weblogic 10.3.0.0 fo