タグ

MySQLに関するhide98のブックマーク (4)

  • SET NAMESは禁止

    (Last Updated On: 2018年8月13日)MySQLには文字エンコーディングを変更する「SET NAMES」SQL文が用意されています。(PostgreSQLも同様のSQL文、SET CLIENT_ENCODINGがあります)この機能はSQLコンソールからは使ってよい機能ですが、アプリケーションからは使ってはならない機能です。SQLインジェクションに脆弱になる場合があります。 Ruby on Railsを読んでいて、ActiveRecordを説明している部分にMySQLの文字エンコーディングを変更する場合の例としてSET NAMESが利用されていました。アプリケーションからはSET NAMESは使ってはならない事を周知させるのは結構時間が必要かなと思いました。 PHPも5.2の途中からMySQLモジュールにlibmysqlの文字エンコーディング設定APIのラッパー関数が

    SET NAMESは禁止
    hide98
    hide98 2011/05/27
    SET NAMES utf8 で文字化け回避できるけど、API 使ってちゃんとやらないとだめ。
  • PDOでmysqlに日本語つっこんだら文字化けして困ったけど解決した - プログラムメモ

    PDOでutf-8日本語入力データ(フォームデータ)を入れたら文字化けしてた(Mysql Query Borwser上で)。 同じくutf-8設定のRubyデータが文字化けしてないので、mysql内での設定は問題ないはず。 いろいろやってためしたところ、次の方法で一発解決。 $pdo = new PDO("mysql:host=localhost; dbname=phptest", "root", "pass"); $stmt = $pdo -> query("SET NAMES utf8;"); $stmt = $pdo->prepare("insert into hoge(name, count)values(:name, :count)"); : $stmt = $pdo -> query("SET NAMES utf8;");が重要。php.iniにcharset関係の設定は不要

    PDOでmysqlに日本語つっこんだら文字化けして困ったけど解決した - プログラムメモ
    hide98
    hide98 2011/05/27
    文字化けしたときは prepare の前に文字コードの設定をしてやる必要があるよ。
  • MySQLのEXPLAINを徹底解説!!

    以前、MySQLを高速化する10の方法という投稿で「EXPLAINの見方についてはいずれ解説しようと思う」と書いてしまったので、今日はその公約?を果たそうと思う。 MySQLのチューニングで最も大切なのは、クエリとスキーマの最適化である。スキーマの設計は一度決めてしまうとそのテーブルを利用する全てのクエリに影響してしまうためなかなか変更することは出来ないが、クエリはそのクエリだけを書き直せば良いので変更の敷居は低い。そして遅いクエリをなくすことは、性能を大幅に向上させるための最も有効な手段である。従って、アプリケーションの性能を向上させたいなら、まず最初にクエリのチューニングを検討するべきなのである。 最適化するべきクエリはスロークエリログやクエリアナライザで見付けられるが、ではそのようなクエリが見つかった場合にはどのように最適化すればいいのか?そのためにはまず現在どのようにクエリが実行さ

    MySQLのEXPLAINを徹底解説!!
    hide98
    hide98 2011/05/25
  • LukeSilvia’s diary

    休暇をいただいて参加してきました初YAPC!2日目は体調不良で行けなかったのですが、1日目だけまとめます! ミスありましたらご指摘いただければ幸いです。では参ります! Pixivサムネイル 規模 33億PV/month 6Gbps 画像 イラスト3千万件 各々12〜100件のサムネイルができる仕様 総容量30TB サムネイル生成の仕組み 静的なサムネイル生成と動的なサムネイル生成がある 静的 画像を登録した後、ロックを発行。ユーザを画像情報登録画面に遷移させる ユーザが画像情報を入力している間に、裏でサムネイルを生成する サムネイル生成が完了するとロックを解除する 画像情報登録画面 から 登録完了画面に行くにはロックの解除を待つ 半非同期。最終的な完了状態に遷移するためにはサムネイルの生成を待つ必要があるが、待っている間に画像情報を入力させる。実質ユーザを待たせない ストレージは自社製のW

    LukeSilvia’s diary
    hide98
    hide98 2010/03/23
    MySQLに詳しいシルビアの人
  • 1