20190512のMySQLに関する記事は2件です。

MySQLスロークエリについて

みなさん、おはこんばんにちは。
なんちゃってインフラエンジニアのしりうすです。

今日はWebサーバにおけるDBのお話です。
WebサーバでLoadアベレージが上がる要因の一つにDBがあげられます。
これはWebアプリケーションサーバがDBに対してクエリを投げたときに、 DB側でのクエリ処理能力を上回り遅延するのが要因の一つになりうるのです。
遅延したクエリ、つまりはスロークエリを分析することにより、負荷上昇を防ぐためのチューニングや、
DBのスペックアップを検討するのに役立つのです。

DBでのクエリの確認手法

    MySQL
        show processlist;
        show full processlist\G
    PostgreSQL
        SELECT * FROM pg_stat_activity;

上記のコマンドをDB上(MySQL or PostgreSQL)で実行すると、
実行されているクエリが表示されるので、実行時間を確認してみれば
クエリの滞留があるかどうか判別できる。

他にもスロークエリログを出力させるさせる手法もある。

set global slow_query_log=1; // 0でOFF, 1でON

set global long_query_time=1; // スロークエリログとして出力する実行時間のしきい値(秒単位)

set global slow_query_log_file ='/usr/local/var/mysql/slow_query.log'; // スロークエリログの出力先

スロークエリ集計コマンド

ionice -c2 -n7 nice -n19 tail -n1000000 /usr/local/var/mysql/slow_query.log | awk '/^# Time/{ d=$3; t=$4; } (/^# Query/ && d){ c=$2; q=$3; print d,t,c,q; }' | cut -d : -f 1,2 | sort -n | uniq -c | less
ionice -c2 -n7 nice -n19 tail -n1000000 /usr/local/var/mysql/slow_query.log | grep timestamp | cut -d= -f2 | awk '{print strftime("%Y-%m-%d %H:%M",$1)}' | sort | uniq -c | less
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MYSQLはまりどころとか(自分用)

細かい点

◦バージョンが8.0か5.7以下かはっきり区別しておかないとはまる。
◦インストローラー版は自動でファイルを配置してくれる、フォルダ構成を自分で決めたいときはzip版を選んで自分で配置。
◦my.iniの場所はprogramfile× programdata〇
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061) そもそもサーバーが起動していないときのエラー
◦たまにC:\Program Files\MySQL\MySQL Server 5.7\dataフォルダがないと怒られる

なんかmysqldしても立ち上がらないときの対処法

・初期化

mysqld --initialize --console
//consoleオプションはコンソールにログ?のようなものが表示されヒントになる 
//ランダムなパスワードが設定される

・サーバー起動

mysqld

・version8.0 パスワード変更(version5.7でも使えた)

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxx';
//××××は新パスワード

困ったら初期化して→仮パスワード作って→mysqld起動させて→仮パスワードでログインして→alteruser文でパスワード変更したらなんとか入れる、、、!

下記エラーが発生したときの対処法

java.sql.SQLException: Incorrect string value:
mysql> SHOW CREATE TABLE テーブル名;
//テーブルの詳細が出るのでDefaultCharasetを確認
mysql> ALTER TABLE テーブル名 CONVERT TO CHARACTER SET utf8mb4;
//文字コードを変更
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む