タグ

mysqlに関するk-holyのブックマーク (190)

  • skip-name-resolveでMySQLへの接続がどの程度速くなるのか試してみた - Lism.in * blog - nekoya (id:studio-m)

    skip-name-resolve重要 - kotori::log を見て、実際のところどの程度性能に影響があるのか気になったのでベンチを取ってみた。 ベンチマークスクリプトはhttp://gist.github.com/594839で、connect -> disconnectを1000回繰り返すのにかかった時間を計測。 ■計測結果 環境の詳細は後述するとして、まずは結果から。手動で何回か実行して、結果のボリュームゾーンを感覚的に抽出。 環境 実行時間(秒) skip-name-resolve 1.73 〜 1.74 hosts 1.75 〜 1.76 DNS 2.26 〜 2.29 /etc/my.cnfでskip-name-resolveを有効にした場合、確かに速くて、DNSで名前解決するよりも0.5秒ぐらい速くなる。1回あたり0.5msecをどう見るかはケースバイケースだが、DB

    skip-name-resolveでMySQLへの接続がどの程度速くなるのか試してみた - Lism.in * blog - nekoya (id:studio-m)
  • MySQL:リモート接続ができない場合

    <meta charset="utf-8"> ローカルではよく接続されるMySQLサーバに、リモートで接続ができない場合があります。 このようなときは、次の内容をテストしてみとして確認してみると問題を確認することができる。 リモート接続時に起こる可能性のあるエラーメッセージは、次のとおりである。 ERROR 2003(HY000):Can't connect to MySQL server on '...' ERROR 1045(28000):Access denied for user 'user' @ 'host'(using password:...) ERROR 2003は、接続に失敗した場合に、以下のチェックリストのうち(1)から開始します。 ERROR 1045は、認証に失敗した場合に、以下のチェックリストのうち(7)から開始します。 *設定ファイル(my.cnf / my.i

    k-holy
    k-holy 2014/05/12
  • PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発

    こちらのスライドは以下のサイトにて閲覧いただけます。 https://www.docswell.com/s/ockeghem/ZM6VNK-phpconf2021-spa-security シングルページアプリケーション(SPA)において、セッションIDやトークンの格納場所はCookieあるいはlocalStorageのいずれが良いのかなど、セキュリティ上の課題がネット上で議論されていますが、残念ながら間違った前提に基づくものが多いようです。このトークでは、SPAのセキュリティを構成する基礎技術を説明した後、著名なフレームワークな状況とエンジニア技術理解の現状を踏まえ、SPAセキュリティの現実的な方法について説明します。 動画はこちら https://www.youtube.com/watch?v=pc57hw6haXk

    PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
    k-holy
    k-holy 2014/05/12
  • MySQL Plugin ’FEDERATED’ is disabled. について - SH2の日記

    ときどき「Plugin 'FEDERATED' is disabled.」で検索してくる方がいらっしゃるようなので。 MySQL 5.1.26以降、FEDERATEDストレージエンジンはデフォルトで無効化されるようになりました。そのためMySQL 5.1のバイナリディストリビューションを使用している場合、mysqldの起動時に以下のようなNoteがエラーログに出力されます。これは正常な動作です。 090925 11:11:38 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 090925 11:11:38 [Note] Plugin 'FEDERATED' is disabled. InnoDB: The InnoDB memory heap is disabled InnoDB: Neither

    MySQL Plugin ’FEDERATED’ is disabled. について - SH2の日記
    k-holy
    k-holy 2014/05/12
    この話どうなったんでしょ…
  • [ThinkIT] 第5回:Federatedエンジン (1/3)

    今回は「Federated」ストレージエンジンを取り上げます。Federatedエンジンは、MySQL 5.0から提供された非常に新しいエンジンです。今回は、Federatedエンジンの特長や動作について解説します。 英単語の「Federated」を直訳すると「連合した」といった意味になります。この意味の通りFederatedエンジンは、このエンジンを動作させるMySQLサーバ単独で動作するものではなく、他のMySQLサーバと連携して動作するエンジンです。 Federatedエンジンは、テーブルデータをFederatedエンジン自身が動作するMySQLサーバ(Federatedではこれをローカルサーバと呼ぶ)のデータベース内に格納せず、ネットワークに接続された他のMySQLサーバ(リモートサーバ)上のデータベース内に格納します。よって、Federatedエンジンが動作するローカルサーバ上に

    k-holy
    k-holy 2014/05/09
    トリガーとの組み合わせは色々応用できそう
  • HAProxy で MySQL のヘルスチェックをちょっと便利にする - 酒日記 はてな支店

    MySQL で slave を複数台立てて参照分散するには、HAProxy を利用してロードバランスと切り離しを行うと手軽に使えて便利です。 option mysql-check という設定で、HAProxy 自身が mysqld に接続してヘルスチェックが可能です。 listen mysql-slave bind 127.0.0.1:3307 mode tcp option mysql-check user haproxy balance roundrobin server slave1 192.168.1.11 check server slave2 192.168.1.12 check server slave3 192.168.1.13 checkなのですが、この設定だと以下のように少々不便なことがあります。 mysqldに接続できるかどうかのみを死活の判断にしているので、レプリケ

    HAProxy で MySQL のヘルスチェックをちょっと便利にする - 酒日記 はてな支店
  • Redisの使用について - 株式会社オーツー|スタッフブログ

    こんちは。開発2部の吉岡です。 オーツーではKVSとしてRedisを使ってます。 なぜかというと、 インストールと設定が簡単なので、開発環境を作りやすい。 柔軟なデータ型。ハッシュとソート済みセットにはお世話になってます。 master-slaveのレプリケーションを作って、冗長構成も取ることが出来る。 という感じでしょうか。 ちなみにphpredis使って接続しています。 ランキングとRedis ランキング機能はソーシャルゲームに付き物です。 なぜRedisでランキングで作成するのかというと、データベースでも実装を行うことは出来るのですが、順位付けの処理に非常に負荷がかかります。特に同点同位。これがクセモノです。 リアルタイムでこれを生成するのはかなり難しいかと思いますが、Redisのソート済みセット使えばこの処理は比較的楽に実装出来ます。 参考になるのは↓な記事でしょうか。 Redis

    Redisの使用について - 株式会社オーツー|スタッフブログ
  • YappoLogs: なぜ SQL_CALC_FOUND_ROWS や LIMIT OFFSET のページングが良く無いのか

    なぜ SQL_CALC_FOUND_ROWS や LIMIT OFFSET のページングが良く無いのか ここ最近の大規模サービス関連したデータページング考です。 mysql 5.5.34 で試して記事書いてます。 bigdata テーブルは id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (id) なカラムがある前提です。もちろん InnoDB です。 2014年なんだからCOUNT(*)とかSQL_CALC_FOUND_ROWSとかLIMIT OFFSETのページングはやめようぜ - Togetterまとめが発端にみえるけど、わりと昔から話されてる事なんだけど、「nippondanji SQL_CALC_FOUND_ROWS」でググっても有用な情報ないし文書化されてないからしとく。 ページング処理で使われがちな機能です。 S

    k-holy
    k-holy 2014/03/12
    MySQLはSQL_CALC_FOUND_ROWSのが速いというのは間違いだったのか…件数10万超えることないし、部分一致検索とか「全99件 先頭 前 1 2 3 4 5 6 次 末尾」みたいの必須なので、世界が違うのかなぁと思いつつ
  • MySQLite: SQLiteデータベースを読み書きするMySQLストレージエンジン

    k-holy
    k-holy 2014/02/19
    ユースケース「…」
  • MySQLでトランザクションの4つの分離レベルを試す - FAT47の底辺インフラ議事録

    トランザクションとは 1つの作業単位として扱われるSQLクエリの集まりです。 複数のUPDATEやINSERTをひとつの集まりとして、 それらのクエリがすべて適用できた場合のみデータベースに反映します。 ひとつでも適用に失敗したクエリがあった場合は、そのまとまりすべてのクエリの結果は反映しません。 ACID特性 トランザクション処理に求められる4つの特性です。 原子性 (Atomicity) トランザクションに含まれる手順が「すべて実行されるか」「すべてされないか」のどちらかになる性質。 一貫性 (Consistency) どんな状況でもトランザクション前後でデータの整合性が矛盾なく保たれる性質。 分離性 (Isolation) トランザクション実行中は、処理途中のデータは外部から隠蔽されて他の処理に影響を与えない性質。 永続性 (Durability) トランザクションが完了したら、シス

    MySQLでトランザクションの4つの分離レベルを試す - FAT47の底辺インフラ議事録
    k-holy
    k-holy 2014/02/13
  • MySQLでCan’t create table(errno: 150) | FizSoft

    これはウザイ。。。と思ったのでメモっとこう。 テーブル作成(作り直し)時に以下のエラーがでました。 ERROR 1005 (HY000): Can’t create table ‘./hoge/TableName.frm’ (errno: 150) 普通に前まで作成出来ていたのになぜ。。。! と色々調べたらこちらのサイトが。 私が引っかかったのは1番だったんですが、 せっかくなので見つけたの全部書いておきます。 原因不明なときは上から順番にチェックするといいかも? 1.FOREIGN KEY制約に指定しているカラムの型が一致していない 外部制約に指定したカラムの型が、 参照元テーブルがBIGINTで参照先テーブルがINTだったという罠。 これは何かメッセージ出してくれてもいいんじゃないですかね。。。 2.FOREIGN KEY制約に指定しているカラムがPRIMARYではな

    k-holy
    k-holy 2013/12/09
  • InnoDBのロックの範囲とネクストキーロックの話 - かみぽわーる

    この記事はMySQL Casual Advent Calendar 2013 3日目の記事です。 はじめに 以前にSELECT ... FOR UPDATEとロックの挙動 - walf443's blogの記事にTwitterで少し言及したんですが、それの補足というか、InnoDBのロックの範囲について僕はこう理解していますよという話です。 MySQLといえば、InnoDBをネットワークサーバとして使うためのフレームワークであり、SQLはInnoDBのインデックスにアクセスするためのDSLといっても過言ではないでしょう。 InnoDBのロックとはつまるところインデックス行のロックなので、InnoDBのロックの範囲を理解するためにInnoDBのインデックスについて少し前置きしておきます(だいぶ端折ったけど長くなった…)。 クラスタインデックスとセカンダリインデックス すでにInnoDBのイン

    InnoDBのロックの範囲とネクストキーロックの話 - かみぽわーる
    k-holy
    k-holy 2013/12/05
  • [D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo

    db tech showcase 2013 Tokyoでの発表資料です。 [D14] MySQL 5.6時代のパフォーマンスチューニングRead less

    [D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo
  • 長年の議論に終止符 -- MySQL、MariaDB、PostgreSQLのオプティマイザ/エクゼキュータ比較 - interdb’s blog

    https://mariadb.com/kb/en/optimizer-switch/にあるように、MariaDBのオプティマイザはかなり改良されている。 では、MariaDBのオプティマイザ/エクゼキュータはどの程度優秀か、4つのSELECT文の実行を通してMySQLと(ついでにPostgreSQLと)比較してみる。 (2014.12.3追記:オプティマイザについては省略してますが、こんながでます。) 結論を先にいえば「MySQLは検索が速い」というのは都市伝説。MariaDBはがんばってるけどPostgreSQLにはまだまだ及ばず。 *念のため。これはベンチマークじゃないよ、オプティマイザ/エクゼキュータの機能比較です。 自分で再確認したい場合はこちらにスクリプト群と実験のやり方を簡単に書いたので参照のこと。 調査環境 同一マシンにMySQL5.6.14、MariaDB10.0.4、

    長年の議論に終止符 -- MySQL、MariaDB、PostgreSQLのオプティマイザ/エクゼキュータ比較 - interdb’s blog
    k-holy
    k-holy 2013/10/23
    スケール不要な規模のお仕事だとPostgreSQLのが無難なのかな。JOIN+サブクエリでのcount()は多用してるしなぁ
  • MySQL に大きなデータを送る際に max_allowed_packet を確認した方がいい | Sun Limited Mt.

    MySQL でクライアントからサーバに送ることができるパケットの最大は 16MB です。しかしデフォルトでは 1MB になっています。画像を DB に格納している OpenPNE のようなアプリケーションではこの制限に引っかかってしまうことがあります。 max_allowed_packet の確認 mysql> show variables like 'max_allowed_packet'; +--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 1048576 | +--------------------+---------+ max_allowed_packet を SQL により変更する mysql> set

    k-holy
    k-holy 2013/10/22
    "MySQL server has gone away"とか怒られたと思ったらこれだった。MySQLにバイナリ格納は厳しいな…
  • 長年の議論に終止符 -- MySQLとMariaDBの違い一覧 - 技術メモ置き場

    (2014.12.3追記:このblogの内容は、以下の書籍にも反映させた。) SQLレベルの差異 MariaDB5.5とMySQL5.5ではSQLレベルでの違いはほとんどなかった。autoincrementの最大値の扱いくらい。 ただし、MariaDB10.0でREGEXPがマルチバイト対応になったので、アプリ側は注意。 項目 MySQL MariaDB Autoincrement 最大値に達すると、以降は最大値を繰り返す。Warningのみ。エラーにならない。tinyintなら…,125,126,127,127,127… 最大値-1まで。以降はエラーを返す。tinyintなら…,125,126,ERROR,ERROR,… EXPLAIN文 JSON形式 バージョン5.6から 未対応 Optimizer Trace バージョン5.6から 未対応(ただし、MariaDBのほうがオプティマイザ

    長年の議論に終止符 -- MySQLとMariaDBの違い一覧 - 技術メモ置き場
    k-holy
    k-holy 2013/09/20
    ちょうど分岐点なのね。まだレプリケーションも未経験な自分には特に決め手がないけど…
  • PDOにてMaster&Slaveのコネクションを操作するクラス(PHP)

    皆様、ご無沙汰しております。笹亀です。 いよいよきたる、9/10に新しいiPhone5 S(仮名)が発表される予定ということで、iphone4を使っている自分は今回のタイミングで変更する予定なので、いまから発表が楽しみです。 さて、日はフレームワークなどを利用している場合などであれば、あまり使用することはないですが、PDOを利用したレプリケーションしたデータベースのコネクションを切り分ける方法をご紹介したいと思います。PHPでも様々なフレームワーク(symfony,Cake,ZendFramwork)を使い開発をされるようになってきており、あまりレプリケーションの切り分けを考える必要がなくなってきておりますが、切り分けを行う方法(考え方)という視点で見ていただけますと幸いです。 ※尚、ご使用される場合は自己責任でお願い致します 概要について レプリケーションのコネクションを切り分けること

    PDOにてMaster&Slaveのコネクションを操作するクラス(PHP)
  • CakePHPのfind()で取得したデータが全てstring型になるのを、DBのカラムの型に合わせてint型で値を取得する方法(mysql) - cakephperの日記(CakePHP, MongoDB)

    CakePHP2からはPDOを使ってDBアクセスするようになりました。PDO(mysql)では、デフォルト設定でデータをfetchするとint型のカラムでもstring型として結果が返ってきます。CakePHPもこの影響を受けており、jsonデータなどに変換する際や、型を厳密に扱いたい場合に影響がます。(CakePHP1では、PDOを使っていませんがintカラムはstringで返ってきます) この問題を解決するには、PHP5.3以上の環境でPDOのPDO::ATTR_EMULATE_PREPARESをオフにすれば良いです。PDOがmysqlndドライバを利用することが前提なのですが、PHP5.4からはデフォルトでmysqlndドライバが利用されるので大丈夫です。今回はPHP5.4の環境で検証しました。 PHP5.3ではPDOがmysqlndドライバを利用するためにコンパイルオプションを指定

    CakePHPのfind()で取得したデータが全てstring型になるのを、DBのカラムの型に合わせてint型で値を取得する方法(mysql) - cakephperの日記(CakePHP, MongoDB)
    k-holy
    k-holy 2013/09/05
    DBとPHPで型が異なる以上、抽象化レイヤでは文字列で返すべきじゃないかなぁ
  • MySQL5.5で準同期レプリケーション構築 - IT Fragments

    IT Fragments 情報技術系のトピックを扱う個人ブログです。プログラム制作物・システム考察・調べ物の備忘録・お勧めソフトウェア情報など MySQL5.5を用いた通常・準同期レプリケーション構築の解説です。レプリケーションとは何か、通常・準同期レプリケーションの対比、構築方法、必要な保守作業など。対象読者は多少MySQLサーバの設定を行ったことのある方を想定しています。 基礎知識 レプリケーションを構成する要素・どんな動作をするか・レプリケーションの種類。レプリケーション構築の前に知っておくべきことを解説します。 レプリケーションとは何か MySQLのレプリケーションはマスターサーバのデータを一つ以上のスレーブサーバに複製することでデータを冗長化する機能です。 レプリケーションを用いれば複数個所にデータベースの複製を設置できるので、荷分散と共に可用性・信頼性を向上させられます。設定は

  • これだけ見れば大丈夫!ーMySQLパフォーマンス監視のツボ(システム編)|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

    これだけ見れば大丈夫!ーMySQLパフォーマンス監視のツボ(システム編) こんにちは nob です。 前編 これだけ見れば大丈夫!ーMySQLパフォーマンス監視のツボ(クエリ編) の記事から1年半が経過してしまいました。ちょっと長いお休みでしたが、その間に蓄えた MySQL パフォーマンス監視の実戦経験を(システム編)としてお届けいたします! 今回の(システム編)で紹介するツボは 4 つです。(クエリ編)のツボに加えて、この4つに注目して頂ければ MySQL のパフォーマンス監視もバッチリです。 (ツボ1)Load Average < (1 + (cpu数-1)/3) (ツボ2)Checkpoint Age が水平線になったら要注意 (ツボ3)MyISAM は無いよね監視 (ツボ4)万能選手スローログ なお前編と同様この記事では監視ツールとして Cacti と Percona MySQL

    これだけ見れば大丈夫!ーMySQLパフォーマンス監視のツボ(システム編)|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ