📌
mysql memo
mysql
コマンド | したいこと |
---|---|
show columns from address; | テーブル詳細確認 |
aa | Text |
// 「INGORE」 無いなら登録
INSERT INGORE INTO users
(userid,username)
SELECT
userid,
username
FROM
users2 ;
// 「INGORE」 無いなら更新
UPDATE IGNORE users
SET
userid = 1,
username = 'tiger'
WHERE
userid = 2;
pool.query()について
pool.query()はpool.getConnection() -> connection.query() -> pool.release()の一連の流れを処理を実行するショートハンド
ひとつのコネクションに対して複数のクエリを発行する場合には、pool.query()を使わずに、pool.getConnection()でコネクションを握ってからコールバック内で複数のクエリ発行を処理するのが良いかと
mysqlコネクションプールにおけるqueryの挙動の違いについて
レンダリングの際に複数クエリを読み込む方法
var connection = mysql.createConnection({multipleStatements: true});
参考:
mysql:Multiple statement queries
expressとの連携
NodeJS + MySQL + Herokuでアプリ制作!
nodeと連携する時はConnectionPoolを使う!
じゃないと時間経つと接続切れてこんなエラーでる
app[web.1]: Error: Connection lost: The server closed the connection.
session管理
Warning: connect.session() MemoryStore is not
express-sessionだけだとメモリリークが起きる
express-mysql-sessionを使って回避する
エラー記録
has exceeded the 'max_user_connections' resource
=> MySQLサーバーはユーザーごとに10の接続しか許可しておらず、その制限に達しているという意味
connection.release()の場所がよく無いかも?
connection.queryのcallback内に書かないと、順番が担保されず、セッション閉じてくれないかも
Discussion