タグ

MySQLに関するsendのブックマーク (151)

  • MyISAM と InnoDB の SELECT パフォーマンスの話 - kazuhoのメモ置き場

    InnoDB は MVCC で遅そうだから読み込み主体の場合は MyISAM とか言うけど、そういう発想の人はそもそも MVCC 不要=複雑なクエリを書かない人なわけで、で、永続的なハッシュとしてしか MySQL を使わないようなケースでは、どのみちプロセス間通信がボトルネックになるので InnoDB でも MyISAM でもパフォーマンスは変わらないんじゃないかと思った。 以下は、250 万件のテーブルからランダムにプライマリキーを指定して読み込んだ場合のパフォーマンス (10万回)。 クエリ MyISAM InnoDB WHERE id=x 10.4秒 10.7秒 WHERE id>x LIMIT 10 19.8秒 18.1秒 環境は MySQL 5.1.28-rc。チューニングとしては、key_buffer_size, myisam_use_mmap, innodb_buffer_p

    MyISAM と InnoDB の SELECT パフォーマンスの話 - kazuhoのメモ置き場
    send
    send 2008/11/14
    俺もここ最近は InnoDB しか使ってない
  • MySQLコンファレンス2008 2日目に参加してきました。 - kaeruspoon

    おおいしつかさ 旅行とバイクとドライブと料理と宇宙が好き。 Ubie Discoveryのプログラマ。 MySQLコンファレンス2008に参加してきました。同時通訳というものをはじめて経験したけど、けっこう理解しにくいものですね。ふつうに英語を聞いていたほうがよかったかも(英語もよく理解できないけど)。ところどころ、頭が混乱してしまってよくわからなかったところがありました。 仕事があったので2日目だけの参加でした。 ぼくが聞いてぼくなりに理解した内容だったり(またはよく理解できていない内容だったり)するので、事実とは異なるところもあるかもしれません。 1.MySQL Performance Tuning 1 ボトルネックとなる箇所をさぐることが大切 スロークエリログ ・基 ・十分詳細ではない ・どこが非効率なのかまではわからない ・時刻(時間帯による環境の影響は?)、ユーザ(どのアプリ?

    send
    send 2008/11/14
  • Drizzleのプラグインを書いてみた (認証系) - moriyoshiの日記

    DrizzleのSASLプラグインを書いてみた。 Drizzleとは 前坂さんのブログ記事や@ITの記事などを参照してもらえれば。 一言でいうと「Lean and Mean MySQL」。 Drizzleをビルドするには 1次情報の垂れ流し失礼。 まず、Protocol Buffersとlibeventという2大バズワード的コンポーネントと、PCREを利用しているのでこいつらはインストール必須。 あとは非必須コンポーネントとして、 OpenSSL zlib libintl (gettext) readline がある。 ビルドのためのツール類としては以下が必要。 libtool automake autoconf bison g++ (gcc) また、ソースはBazaarを使って引っ張ってくるなどするのがよいと思われるので。これもインストール。 1. ソースのクローン Wikiの説明を見る

    Drizzleのプラグインを書いてみた (認証系) - moriyoshiの日記
    send
    send 2008/11/04
  • 運用中の自作 MySQL パッチ一覧 (含む Tritonn, Senna) - kazuhoのメモ置き場

    MySQL Lists: internals: Re: Const propagation within a non-const expression Kazuho at Work: Using O_DIRECT on Mac OS X Kazuho@Cybozu Labs: Tritonn (MySQL+Senna) の join を高速化 全文検索中に KILL CONNECTION を有効にするパッチ (Tritonn-dev 126) - Tritonn - OSDN Re: 全文検索中に KILL CONNECTION を有効にするパッチ (Tritonn-dev 128) - Tritonn - OSDN エスカレーションを部分的に抑止する演算子 (Senna-dev 1068) - senna - OSDN 壊れたマルチバイト文字列で検索すると無限ループ (Senna-dev

    運用中の自作 MySQL パッチ一覧 (含む Tritonn, Senna) - kazuhoのメモ置き場
    send
    send 2008/10/31
  • InnoDB Plugin のデータベース圧縮機能 - kazuhoのメモ置き場

    ファイルサイズが 1/10 になってアクセス速度も大幅改善か。実データでこれはすごいな *1。 I’ve tried to convert this table using COMPRESSED row format. This time conversion took 1,5 hours and results were really surprising: Only 5Gb data file (from 60Gb) ~5% I/O load according to iostat (from 99%) ~5% CPU load according to top (from 80-100% mostly waiting for I/O) 0.01 sec average lookup time by primary key (from 1-20 sec before the conve

    InnoDB Plugin のデータベース圧縮機能 - kazuhoのメモ置き場
  • mysqlコマンドで、テーブル名とかカラム名の補完(completion)をする方法 - (ひ)メモ

    追記: rehash(auto-rehashも含む)すると、SQL文の補完(seleでタブ打鍵とか)が効かなくなるよと、はす向かいの人に教えてもらいました。 個人的には、SQLは「mysql> help select」とかでオンラインヘルプがびょっと出るので、スキーマの補完ができるんならSQLの補完はとりあえずあきらめてもいいかなと思っています。 常々、テーブル名とか補完できるといいなーと思っていたので、ボロっときいてみたら教えてもらいました。あざーーーーっす! id:mikihoshi++ id:tokuhirom++ id:precuredaisuki++ おかげで効率が300%上がりました。(Benchmark::Stopwatchで計測) http://dev.mysql.com/doc/refman/5.1/en/mysql-command-options.html#option

    mysqlコマンドで、テーブル名とかカラム名の補完(completion)をする方法 - (ひ)メモ
    send
    send 2008/01/24
  • Q4M - a Message Queue for MySQL

    Q4M (Queue for MySQL) is a message queue licensed under GPL that works as a pluggable storage engine of MySQL, designed to be robust, fast, flexible. It is already in production quality, and is used by several web services (see Users of Q4M). To start using Q4M, download either a binary or source distribution from the install page, and follow the installation instructions. A small tutorial is also

    send
    send 2008/01/24
  • mysqlにperlインタプリタを組み込んでみる - ダウンロードたけし(寅年)の日記

    以前「mysqlに独自関数を組み込む(UDF)」というエントリを書いてみましたが、今回はそれの延長で、mysqlのUDFとしてperlインタプリタを組み込んでみようと言う実験です。 mysqlperlを組み込んで何がうれしいかっていうと、簡単なperlスクリプトで自由にmysqlの関数を作れるようになります。 例えば URLリストから実際にLWPで内容を取得してきて何かの処理をした結果を表示したり perlの正規表現で任意のフィルタリング関数を書いてみたり 何かの更新処理のあとに裏でバッチ処理を走らせるためのトリガースクリプトを関数として組み込んでみたり みたいなことがmysqlの中だけでできるようになります。 車輪の再開発 実は先に述べておきますと、今回のこのアイデアですが、なんと今から5年ほど前にかの有名なBrian Aker氏がLinuxJournalにてEmbedding Per

    mysqlにperlインタプリタを組み込んでみる - ダウンロードたけし(寅年)の日記
  • 詳解 MySQLを買った - k12uのアレ

    詳解 MySQL 作者: Sasha Pachev,吉川英興,田中慎司,伊藤直也,菅野良二出版社/メーカー: オライリー・ジャパン発売日: 2007/11/20メディア: 大型購入: 4人 クリック: 86回この商品を含むブログ (24件) を見るもしかするとDBMSのソースコード解説が日語で読めるのはこれが初めてのことではないかと思った(未確認。もし他にあればぜひ教えてください)。 買おうかどうか迷っている人はとりあえずオライリーのサイトで目次をよく見ておいたほうがいいと思う。 ちゃんと目を通したのはまだ2章までなのでその時点での感想を書く。「期待を膨らましてください」の節は読み進めるにしたがって増えると思いたい。 期待しないほうがいいこと 詳解 Linuxカーネル 第3版あたりに比べるとソースコードの逐行解説的な要素はだいぶ少ないのでそういった方面は期待しないほうがいい。「実装がど

    詳解 MySQLを買った - k12uのアレ
    send
    send 2007/11/17
    ふむ。買おうかな
  • MySQL AB :: MySQL 5.1 リファレンスマニュアル :: 15 パーティショニング

    テーブルのパーティション化は、ウィンドウ関数で使用されるパーティション化とは異なります。 ウィンドウ関数の詳細は、セクション12.21「ウィンドウ関数」 を参照してください。 MySQL 8.0 では、パーティション分割のサポートは InnoDB および NDB ストレージエンジンによって提供されます。 MySQL 8.0 は現在、MyISAM などの InnoDB または NDB 以外のストレージエンジンを使用したテーブルのパーティション化をサポートしていません。 ネイティブパーティション化サポートを提供しないストレージエンジンを使用してパーティションテーブルを作成しようとすると、 ER_CHECK_NOT_IMPLEMENTED で失敗します。 Oracle によって提供される MySQL 8.0 Community バイナリには、InnoDB および NDB ストレージエンジンによっ

    send
    send 2007/10/22
    今週中に読む
  • Managing Slave Lag with MySQL Replication

    The question I often get is how far MySQL may fall behind and how to keep replication from lagging. The lag you will see will vary a lot from application to the application and from load to load. Plus what is the most important within same application the lag will likely have spikes – most of applications would have typical lag within few milliseconds while there will be rare cases when replicatio

  • InnoDB のパフォーマンスチューニング - MySQLカンファレンス2007 - akiyan.com 管理人メモ

    http://www.mysql-ucj2007.jp/details/j25.html 木下 靖文 氏 NTTコムウェア株式会社 プロジェクト管理統括部技術SE部門 DB技術グループ (「InnoDB」は「いんのでーびー」と言うらしい...今まで「いのでーびー」と言ってました) InnoDBをなぜ使うか トランザクション コミット、ロールバック、セーブポイント 外部キー 行レベルロック オンラインバックアップ クラッシュリカバリ クラッシュリカバリ MyISAMはデータ量の増大とともに時間がかかる InnoDBはデータ量の増大との相関がない InnoDBチューニングの王道的アプローチ クエリを改善して全体的に処理効率を上げる データサイズをできるだけ小さく メモリをできるだけ多く積む コミット性能(同期書き込み) innodb_flush_log_at_trx_commit=1,0,2

    InnoDB のパフォーマンスチューニング - MySQLカンファレンス2007 - akiyan.com 管理人メモ
  • 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は禁止
  • ウノウラボ Unoh Labs: MySQL オペミスでデータが破損してしまった場合の復旧方法

    こんにちは satoです。 オペミスで update に where句を付け忘れたり、プログラムのバグでデータが破損してしまったりした場合でも、バイナリログには更新SQLがすべて書き込まれるので、バックアップデータからオペミスが起こるまでの全てのSQLを流し込めれば、元の状態に戻すことは可能です。 •バイナリログを取っている •オンラインバックアップをとっている(mysqldumpMySQLを止めた状態でのcpによるバックアップとバイナリログ) •バックアップ時点でのバイナリログの書き込み位置を保存している 以上のような状態でデータが壊れた時の復旧手順をまとめてみました。シナリオとして •ある1カラム email をupdateしようとしたら、間違ってwhere 句を付け忘れ 全レコードをupdateしてしまった •気がついたのが半日後 というオペミスが発生したとします 1) データベー

    send
    send 2007/08/22
    しらないオプションがあった。
  • MySQLノウハウ

    いろいろなからメモってきたメモのメモ。出典を書いておくのを忘れた。思い出し次第補完するかも。 deleteのコストは高いので、無効化を示すフィールドを作ってupdateすべき slow query logに要注意 多くのエントリでほとんどのフィールドが同じ値を持つ場合はインデックスの効果が小さい →複合インデックスの効果が大きい 複合インデックスは指定の順番が大切。AとBという指定の場合、A単独でもインデックスの効果がある。逆は真でない。 インデックスが使われる場面は フィールド値を定数と比較するとき (where name = 'hogehoge') フィールド値でJOINするとき (where a.name = b.name) フィールド値の範囲を求めるとき (<,>,between) LIKE句が文字列から始まるとき (where name like 'hoge%') min(),

    send
    send 2007/07/12
    よくまとまってる
  • spiritlooseのはてなダイアリー - MySQL Proxyがおもしろそう

    http://forge.mysql.com/wiki/MySQL_Proxy ほー・・・なかなかおもしろそう。 mod_proxy_balancer and mod_rewrite for MySQLみたいなかんじかなぁ。 といっても、tritonn みたいに MySQL に組み込むんじゃなくって、別プロダクトのサーバ。 load balancing fail over あたりが mod_proxy_balancer っぽくて Query interception Query rewriting Injecting queries あたりが mod_rewrite っぽい。 mod_rewrite みたいに挙動を選ぶ(PとかRとかPTとか)んじゃなくて、コアの挙動はなくて、全部 RewriteMap prg:/path/to/script みたいなイメージっぽい。 「--proxy-lu

    spiritlooseのはてなダイアリー - MySQL Proxyがおもしろそう
    send
    send 2007/06/28
  • MySQL :: MySQL Users Conference Japan 2007 開催のご案内

    購入に関するお問い合わせ 0120-33-9096 03-5717-5033 (携帯電話用) 【電話受付時間】 平日 9:00-11:45、13:00-17:00 USA - Toll Free: +1-866-221-0634 USA - From abroad: +1-208-327-6494 USA - Subscription Renewals: +1-866-830-4410 UK: +44 845 399 1124 Ireland: +353 1 6919191 Germany: +49 89 420 95 98 95 France: +33 1 70 61 48 95 Sweden: +46 730 207 871 Benelux: +358 50 5710 528 Italy: +39 06-99268193 Israel: +358 50 57

    send
    send 2007/05/29
  • Merge Tables Gotcha

    send
    send 2007/05/10
    merge table関連で
  • http://maclema.com/assql/

  • Entrance has moved to: http://dbentrance.com

    Entrance has moved to: http://dbentrance.com

    send
    send 2007/05/08