MySQL 5.7 初心者向けセミナー ~チューニング基礎編、SQLチューニング編~ 20170814
- surumegohan
- 3778
- 16
- 1
- 0
MySQLのベンチマークツール:mysqlslap、SysBench、独自のベンチマークツールをログやMySQL ProxyやTCP DumpからSQL文をを作成する。 #mysql_jp
2017-08-14 13:54:31ビジネス面からの考慮。そのアプローチは適切か。全体を俯瞰しているかを気を付ける。 「チューニングセミナーでアレですが、ハードウェア交換する方が早いケースも現場ではある」 可用性にかかるコストも、どこまで求められるのか考えるべき #mysql_jp
2017-08-14 13:57:09DBだけではなく、アプリケーションの作り直しもチューニングになる。そういう全体をみる視点もアプローチとして必要。 #mysql_jp
2017-08-14 13:58:09チューニングのアプローチ。DBチューニング(全体最適)、もしくはSQLチューニング(個別チューニング) #mysql_jp
2017-08-14 13:58:57MySQLにはシステム変数ってのがある。システム変数。show variablesで調べることができる。LIKE文つかえるよ! パラメータはmy.cnfとかmy.iniファイルにあります。 サーバ単位とセッション単位の変更があるので注意! #mysql_jp
2017-08-14 14:02:25パラメータを変更するSET GLOBALやSET SESSIONなどがある。変更できないパラメータもあるのでマニュアルで「ダイナミック」か確認しましょー #mysql_jp
2017-08-14 14:03:39ステータス変数(稼働統計)という変数もあります。 サーバの稼働統計を基本的に累積値で表示。ものによっては瞬間値。 コネクション数は瞬間値。com_selectは累積。 基本的に差分をとって、その間にMySQLサーバがどういう動きをしたか確認するアプローチになる #mysql_jp
2017-08-14 14:05:23mysqladminというツールを使うと例えば15秒間隔でステータス変数の差分のみ表示などができる! #mysql_jp
2017-08-14 14:06:32ステータス変数もマニュアルがあるので気になったところは参照しましょう。システム変数は5.6から5.7で新しく増えたり非推奨になったりした変数がある。比較資料があるのでそこを参照してください。(資料に記載)。5.5、5.6、5.7のデフォルト値比較資料もある。 #mysql_jp
2017-08-14 14:08:13MySQLのページの「MySQLパラメーター比較資料」にあります! 後日、本日の資料に追記して公開します。 #mysql_jp
2017-08-14 14:09:09システム変数、ステータス変数の確認にMySQL Workbenchがあるよ。(会場での利用者数が2割くらい) MySQL WorkBenchにチューニングに使える機能もございます #mysql_jp
2017-08-14 14:10:44MySQLWorkBenchの「Server Variables」とかすぐみれます。自分がよくみるパラメーターとかをカスタムカテゴリに移すことでカスタム表示できる。 #mysql_jp
2017-08-14 14:12:36MySQL Woekbenchにも商用版がありますが、ほとんどの機能は無料のコミュニティ版でできますのでまずは使ってみてください。 #mysql_jp
2017-08-14 14:13:28パフォーマンススキーマ。5.5から実装されたけど5.6から実用的になったやつ。システム変数などをSQLでみられる。 #mysql_jp
2017-08-14 14:14:22今ではSysスキーマが作成されるようになった。5.7ではデフォルト。5.5や5.6ではSysスキーマをつくるスクリプトはgit公開されてる。パフォーマンススキーマとインフォメーションスキーマをみやすいビューにしているよ。 #mysql_jp
2017-08-14 14:15:45IOの一覧とか、実行されたSQLの実行時間、平均実行時間、実行回数、最大実行時間などがわかったりする。statement_analysis #mysql_jp
2017-08-14 14:17:11クライアントから接続があるとコネクションスレッドプールで使いまわす。コネクションをはって、SQLを実行したらクエリキャッシュが有効ならば、クエリキャッシュで返せるか判断する。返せないならパーサーで解析してオプティマイザで最適化する(実行計画を作る) #mysql_jp
2017-08-14 14:19:57クエリキャッシュ。クエリの実行結果そのものをキャッシュする機能。次の8.0ではクエリキャッシュはサポートしないという明確なロードマップがでました!!! なので今後はそこを見据えてチューニングしてください! #mysql_jp
2017-08-14 14:21:54SQL Server 8.0 (5.7 の次) では Query Cache はサポートされなくなる #mysql_jp
2017-08-14 14:22:248系から、クエリキャッシュがなくなるよって話は、builderscon でもしてました。根本的な理由をちゃんと聞きたいので、あとで質問しに行こう。 builderscon.io/tokyo/2017/ses… #mysql_jp
2017-08-14 14:30:25これに参加中 → MySQL 5.7 初心者向けセミナー ~チューニング基礎編、SQLチューニング編~ #mysql_jp atnd.org/events/89217
2017-08-14 14:31:30