お、MySQLの通信も見えそうだぞ? pic.twitter.com/GVxBXqHEgA— k1LoW (@k1LoW) 2018年7月25日 "TCP Proxyを書いてPostgreSQLの通信を覗いてみる - Copy/Cut/Paste/Hatena" の続編です。 MySQLの通信を覗いてみる また簡単なクエリだけを対象にします(プリペアードステートメントなどは含みません)。 MySQLもしっかりとしたドキュメントがありクエリのプロトコルの説明もありました。 MySQL :: MySQL Internals Manual :: 14.6.4 COM_QUERY しかし、とみたまさひろさん の資料のほうが断然わかりやすかったです。 slide.rabbit-shocker.org というわけで今回も tcprxy に実装を追加していきます。 mysqlコマンドでクエリを実行してみ
http://qiita.com/advent-calendar/2015/gaiax 初めまして、GaiaxAdventCalender 4日目担当の技術開発部の金田と申します。 既に熱い記事ばかりなので後続の人たちのハードルを下げる為に小ネタで行きたいと思います。 GROUP_CONCATという関数がMySQLにあるんですがそれがアツいのでみんなに教えたいという記事です。 1対多の関係のとき 普通にテーブル設計してると1対多の関係(has many)になるリレーションシップをテーブル間で張ることが多いですよね。 まぁこんな感じで。 ざっくりと記事に対して複数のタグが設定できるような作りを想定してみます。 Entryから出た線がTagは複数に枝分かれしているのがhas manyの関係です。 で、こんなデータが入ってます。 取得するとき 記事と、それに付随したタグの一覧を取得したいときは当
group_concatはgroup byで複数行をまとめた際に、まとめられた列のデータをカンマ区切りで表示する機能。 find_in_setはカンマ区切りのデータを絞り込む機能。 この2つを組み合わせることで、本来なら副問合せ等の複数のSQLに分けないと出来ないようなことが一つのSQLで完結できることが分かった。 ただ速度的なメリットがあるのかどうかは不明。 参考ページの例を使うと以下のようなsqlでmarketとsalesに所属するempを一発で取得できる。 select dept_emp.empid, emp.name, GROUP_CONCAT(dept.name order by dept.id) as dept_n from dept_emp left join emp on dept_emp.empid=emp.id left join dept on dept_emp.de
とある複数システムが同居するサーバの VPS 移行を過去二回実施してきました。MySQLのデフォルトのデータベースの設定は、既存他システムのプログラム改変が伴うためできません。ちなみに MySQL の文字コードに関するシステム設定は下記の通り。latin1, binary, utf8 が混在する混沌とした設定です。 mysql> SHOW VARIABLES LIKE 'character%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | latin1 | | character_set_connecti
以前、MySQLを高速化する10の方法という投稿で「EXPLAINの見方についてはいずれ解説しようと思う」と書いてしまったので、今日はその公約?を果たそうと思う。 MySQLのチューニングで最も大切なのは、クエリとスキーマの最適化である。スキーマの設計は一度決めてしまうとそのテーブルを利用する全てのクエリに影響してしまうためなかなか変更することは出来ないが、クエリはそのクエリだけを書き直せば良いので変更の敷居は低い。そして遅いクエリをなくすことは、性能を大幅に向上させるための最も有効な手段である。従って、アプリケーションの性能を向上させたいなら、まず最初にクエリのチューニングを検討するべきなのである。 最適化するべきクエリはスロークエリログやクエリアナライザで見付けられるが、ではそのようなクエリが見つかった場合にはどのように最適化すればいいのか?そのためにはまず現在どのようにクエリが実行さ
こちらのエントリーで書いているのですが、開発用のVPS鯖がメモリ使い過ぎで重くなっていて、mysqlに問題がありそうだったのでサクっと調整しました。 その手順を残しておきます。 MySQLのチューニング項目について説明 MySQLのメモリに関する設定項目はたくさんあります。 それぞれの項目に関しての詳しい情報は下記が参考になります。 http://trackback.blogsys.jp/livedoor/klab_gijutsu2/50860867 ただ、これらを全て把握するのは大変だと思うので、簡単に分類すると以下の2種類があります。 グローバルバッファ スレッドバッファ で、MySQLが使うメモリ量は下記になるわけです。 グローバルバッファ + ( スレッドバッファ * コネクション数 ) それらを踏まえた上で具体的なチューニングに入ります。 MySQLで使っているメモリ量を調べる
こないだ仕事で使った組み合わせ。 Limonade(Lemonadeではない)はSinatraに影響を受けたらしいPHP用の軽量フレームワーク。IdiormはPDOベース。どちらもシンプルでプロトタイプ作りに適している。覚えることが少ないから学習も簡単。IdiormをベースにしたORマッパー、Parisはまだ使ってないので後で確かめたい。 Limonade – PHP micro-framework Idiorm and Paris – object relational mapper (ORM), fluent SQL query builder and Active Record implementation for PHP 以下はlimonadeでidiormを使うときのメモ。 接続設定やエラーモードの指定などを、index.phpのconfigure()に記述。 require
WEBでいろいろググって手動で変換してたけど、うまく行かなかった。 英語で検索したらすぐに変換スクリプトが出てきたのでそれを試したらだいたいうまくいったよ!って話。 SQLiteのダンプファイルをとって、テキストエディタで手動で変換してたんだけど、うまくいかない。 TRANSACTIONやら、AUTOINCREMENTやら、データ型やらを変換してたけどまぁインポートはうまくいかない。 うまくいかないのは正規表現などの記事の文字列あたりがおかしいと怒られる。その辺りのデータを一旦削除するとインポート自体はまあ通った。しかしインポートされたデータを見ると、booleanあたりがおかしい。 この辺りで2時間程度時間を費やし心が折れてきた・・もうめんどくさいお(`;ω;´) 日本語で検索してんのが悪いんじゃないかと思い、「SQLite to MySQL」でググると一発でpyhonスクリプトが出てき
Windows検索でWebの検索結果が邪魔な場合 問題 Windowsキーからの検索で、ローカルのアプリがヒットしてほしいのに、Webの検索結果など不要なものが出てきます。 Webの検索など除外できませんか。 答え Windows11の場合 League\CommonMarkでtableをスタイルシートで装飾したい 問題 League\CommonMark でMarkdownをHTMLに変換しています。 表を表示するときにTABLEタグがただの <table> になるのですが、 <table class="tabl […] 【php】 TOTPのワンタイムパスワードを生成する 問題 TOTPのワンタイムパスワードをphpで生成したいです。 答え 例 // ライブラリを利用するか、関数を自作してbase32_decodeしてください $binary_secret = Base32::deco
この投稿はPHP Advent Calendar 2013の13日目の記事です。昨日は@tanakahisateruのPHPが糞言語なのはどう考えても参照をポインタだと思っているお前らが悪いでした。 現在twitterのタイムラインで、史上空前のSQLのエスケープブームが起こっています。 オレオレSQLセキュリティ教育は論理的に破綻している | yohgaki's blog 「プリペアードクエリが基本だけど、動的に SQL を組み立てる場合もあるから、そういう場合に備えてエスケープも知っておいたほうがいいかも」 - Togetterまとめ エスケープとプレースホルダをめぐる議論 - Togetterまとめ SQLインジェクション対策としてのプリペアドステートメントとエスケープについての議論 - Togetterまとめ IPAの「安全なSQLの呼び出し方」が安全になっていた | yohgak
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く