タグ

mysqlに関するrryuのブックマーク (59)

  • https://www.hachi-log.com/mysql-find-in-set/

    rryu
    rryu 2014/07/03
    IDがカンマ区切りで入っていてもON句にこれを使えばJOINできるMySQLすごい。
  • MySQL 今更ながらonline-schema-changeについて | Ore no homepage

    そういえば先日はハロウィンだったね。んで、今日スタバに行ってみたら早くもクリスマス仕様。残念ながら年末の予定は無え。 そんなこんなでオンラインスキーマチェンジを番のオペレーションで使い始めたのでそのメモ。 0. online-schema-change オンラインスキーマチェンジは、percona社が出しているpercona-toolkitに梱包されている。その他有用なツールも入っているのでお世話になっている人も多いだろう。で、オンラインスキーマチェンジはその名のとおり、スキーマの変更、alter文をブロックなしで実行してくれるという代物。 私事なんだけど、今までは「ちょっと更新をブロックしちゃうけどアクセスの少ない時間帯にオンラインでalterを流す」みたいな運用をしてた。実行内容にもよるけどalter tableは意外と早いので、「更新をブロックされる時間がSLA的に許可できるならO

    rryu
    rryu 2013/11/05
    オリジナルをロックして更新を止めるかわりにトリガーで更新に追従するのか。
  • 長年の議論に終止符 -- 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の違い一覧 - 技術メモ置き場
    rryu
    rryu 2013/09/20
    この状況だと某Gは事実上「もう自分たちで開発します」宣言なのだろうな。
  • Devsの常識、DBAは非常識

    AIAWSで現世から離れる試み-仕事がちょっと大変な時もあったりするから�俺のかわりにAIにシステム作ってもらえるシステム作った話.pptxJun Suzuki

    Devsの常識、DBAは非常識
    rryu
    rryu 2013/09/14
    『MySQLはアホの子なので、難しいクエリーを投げるとなかなか返してくれません』なにげに名言が。
  • MySQLのmanページ、ひっそりとGPLからプロプライエタリライセンスに変更される | スラド オープンソース

    Oracle傘下になりオープンソース界から非難を浴びる行為が多くなっているMySQLだが、今度はMySQLのmanページのライセンスがプロプライエタリなものに変更されていたことが発覚した(家/.)。 MySQLからフォークした「MariaDB」の開発団体であるMariaDB Foundationのブログによると、この変更はMySQL 5.5.30と5.5.31の間で行われたもので、man/ディレクトリ以下の全ソースコードに影響するという。 従来これらのドキュメントはGPL 2でリリースされていたのだが、5.5.31以降ではそれまでGPLであることが明示されていたCOPYRIGHTの項に「知的所有権関連法に基づいて利用と公開が制限されるライセンス合意の元でリリースされる」、「ライセンスで合意して許可された場合を除き、利用やコピー、派生物の作成、翻訳、放送、修正、ライセンス許諾、伝送、配布、

    rryu
    rryu 2013/06/23
    バグ報告の「再現方法:マニュアル読め」がじわじわ来る。
  • TheSchwartz のような RDBMS をつかったジョブキューをリアルタイムに処理するアイディア - tokuhirom's blog

    TheSchwartz のような RDBMS をつかった job queue は、新規に daemon をたてたりする必要がないので楽でいいのですが、一方で job の追加の timing が storage から push でおくられてこないので、若干の delay が生じてしまうのが難点でした。 この問題を解決するために、mysql の binlog API を用いて、処理してみるハックを考えてみました。 binlog API を利用すると更新クエリを streaming で処理できるので、こういったハックも簡単にできちゃいます。おもしろい。 use 5.016000; use MySQL::BinLog; use TheSchwartz; my $sch = TheSchwartz->new(...) or die; $sch->can_do($_) for ...; $sch->w

    rryu
    rryu 2012/07/10
    バイナリログのストリームをジョブキューの処理開始トリガにするアイデア。
  • MySQL :: MySQL製品

    MySQL製品 MySQL は世界でもっとも多く使用されているオープンソース・データベースです。MySQL は、大規模な Web サイト、ISV、OEM、VAR のお客様、大企業など様々な環境において、ハイパフォーマンスでスケーラブルなデータベース・アプリケーションの、コスト効率のよい構築をお手伝いします。 MySQL Database Serviceは、MySQL Enterprise Editionで構築されたフルマネージド・データベースサービスです。 MySQL Database Serviceの詳細はこちら 商用版の MySQL は、ビジネスおよび技術要件に合わせて、複数の MySQL Edition でご利用いただけます。 MySQL Standard Edition MySQL Enterprise Edition MySQL Cluster Carrier Grade Edi

    rryu
    rryu 2012/04/18
    商用版MySQLのライセンス料。Standard Editionで年間20万円強。
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
    rryu
    rryu 2011/07/08
    関連しあっているステータス変数の説明と、それを改善するためにどのシステム変数を変更すれば良いかの説明がある。
  • MySQL :: MySQL 5.6 リファレンスマニュアル :: 14.6.7 InnoDB テーブル上の制限

    ロック読み取り (SELECT ... FOR UPDATE および SELECT ... LOCK IN SHARE MODE)

    rryu
    rryu 2010/03/17
    InnoDBには1行最大8KBという制限がある。VARCHAR、BLOB、TEXT型のカラムは先頭768バイトまでが8KBに含まれる。このサイズを変更するにはMySQLを再コンパイルするしかない。
  • これだけは覚えておきたい!!MySQL の6つの自動変換 - sakaikの日々雑感~(T)編

    MySQLはとても気ぃつかい屋さんである。我々が投げる多少あいまいな指示も頑張って解釈し、なんとか文句を言わずに実行してみようと挑戦してみてくれる。 今日はそんなMySQLがケナゲに解釈してくれる自動変換について紹介しようと思う。この自動変換、ケナゲなMySQLの奥ゆかしさ故、出した指示と異なる動作をされたことに気がつかないことがある。ここで紹介する6つの自動変換をしっかり脳ミソにたたき込んでおけば、無用なトラブルにハマる時間も減るかもしれない。 1.[数値] 範囲外の数値は頭を押さえつけられる intやsmallint、bigintなどの数値型には、扱える範囲が決まっている。例えばint型なら最大21億ちょっとだ(unsignedの場合は43億弱)。これより大きい数字を登録するよう指示を出すとMySQLはどうするか。そう、頑張って入れられるところまで入れてくれるのである。「入れられるとこ

    これだけは覚えておきたい!!MySQL の6つの自動変換 - sakaikの日々雑感~(T)編
    rryu
    rryu 2010/02/26
    文字列→数値の変換は確かSQLの仕様で決まっている暗黙の型変換だったような。
  • MySQL :: MySQL 5.1 リファレンスマニュアル :: 4.9.4.3 テーブルの修復方法

    このセクションでは、MyISAM テーブルへの myisamchk の使用方法について説明します。(拡張子: .MYI、.MYD) MyISAM テーブルのチェックと修復には、CHECK TABLE や REPAIR TABLE などのステートメントを使用します (推奨)。詳細は、項12.5.2.3. 「CHECK TABLE 構文」 を参照してください。 テーブル破損の症状としては、クエリが予期せず中断したり、次のようなエラーが発生します。 tbl_name.frm is locked against change Can't find file tbl_name.MYI (Errcode: nnn) Unexpected end of file Record file is crashed Got error nnn from table handler perror nnn を実行す

    rryu
    rryu 2009/12/27
    MySQLが「Got error nnn from storage engine」というエラーを出した場合に、perrorコマンドでnnnに対するエラーメッセージが得られる。
  • MySQL/Rubyにおける正しいエンコーディング変更方法 - しばそんノート

    MySQLの文字化けを直したい! 発端はSequelを使ってMySQLのデータを操作するRubyスクリプトを書いていたときでした。 UTF-8で保存したはずの文字列が、妙に文字化けしています。 mysqlコマンドでエンコーディングの確認をしてみると、 $ mysql -h host -u user -p database ...(略)... Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> \s -------------- mysql Ver 14.14 Distrib 5.1.30, for portbld-freebsd7.1 (i386) using 5.2 ...(略)... Server characterset: ujis Db characterset: utf8 Client char

    MySQL/Rubyにおける正しいエンコーディング変更方法 - しばそんノート
    rryu
    rryu 2009/10/19
    mysql_options(MYSQL_SET_CHARSET_NAME)ではクライアント側の設定は変わってもサーバ側が認識している接続文字セットは変わらないらしい。なんという中途半端な機能。というかそれだとMYSQL_OPT_LOCAL_INFILEも駄目っぽいような。
  • MySQL :: MySQL 5.1 リファレンスマニュアル :: 2.11.2 MySQL データベースの他のマシンへのコピー

    .frm、.MYI、および .MYD ファイルを MyISAM テーブルに同じフローティング ポイント フォーマットをサポートしている異なるアーキテクチャ間でコピーでします。(MySQL はバイト スワッピング問題を処理します。.)項13.4. 「MyISAM ストレージエンジン」 参照。 データベースを異なるアーキテクチャ間で移動する場合、mysqldump を使用して SQL ステートメントを含むファイルを作成します。次にそのファイルを別のマシンに転送して mysql クライアントの入力として扱います。 利用できるオプションを表示するには mysqldump --help を使用します。データを新しいバージョンの MySQL に移動するには mysqldump --opt を使用して最適化を活用することによってさらに小さくて迅速に処理が可能なダンプ ファイルを作成します。 データベース

    rryu
    rryu 2009/04/01
    データベースが大きい場合は mysqldump --tab=... と mysqlimportで行うのが良いらしい。
  • MySQL :: MySQL 4.1 リファレンスマニュアル :: 4.5.1 データベースのバックアップ

    MySQL テーブルはファイルとして保存されるため、バックアップが簡単です。一貫したバックアップを行うには、そのテーブルに対して LOCK TABLES を実行してから、FLUSH TABLES を実行します。 See 項6.7.5. 「LOCK TABLES および UNLOCK TABLES 構文」。 See 項4.6.4. 「FLUSH 構文」。 読み取りロックだけが必要なので、データベースディレクトリのファイルをコピーしている間も、他のスレッドはテーブルに対してクエリを続行できます。FLUSH TABLE は、バックアップを開始する前に、キャッシュされているページをすべてディスクに書き込むために必要です。 3.23.56 から 4.0.12 では、セキュリティ上のリスクがあるため、BACKUP TABLE で既存ファイルの上書きはできないようになっています。 テーブルを SQL

    rryu
    rryu 2009/04/01
    mysqlhotcopyはInnoDBはコピーできない罠。
  • MySQL :: MySQL 8.0 リファレンスマニュアル :: 13.8.2 EXPLAIN ステートメント

    SAVEPOINT、ROLLBACK TO SAVEPOINT および RELEASE SAVEPOINT ステートメント

    rryu
    rryu 2009/03/31
  • MySQLのEXPLAINを徹底解説!!

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

    MySQLのEXPLAINを徹底解説!!
    rryu
    rryu 2009/03/31
    MySQLのマニュアルは文章がアレなのでありがたい。
  • MySQL :: MySQL 8.0 リファレンスマニュアル :: 12.10 全文検索関数

    MATCH (col1,col2,...) AGAINST (expr [search_modifier]) search_modifier: { IN NATURAL LANGUAGE MODE | IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION | IN BOOLEAN MODE | WITH QUERY EXPANSION } MySQL では、次のような全文インデックス設定および検索がサポートされています。 MySQL の全文インデックスは、型 FULLTEXT のインデックスです。 全文インデックスは、InnoDB または MyISAM テーブルでのみ使用でき、CHAR、VARCHAR、または TEXT カラムにのみ作成できます。 MySQL には、中国語、日語および韓国語 (CJK) をサポートする組込みの全文 ngram パーサー

    rryu
    rryu 2009/03/28
    必要な時に書き方を忘れているMATCH~AGAINSTについて
  • MySQL AB :: MySQL 4.1 リファレンスマニュアル

    概要 これは MySQL リファレンスマニュアルです。 MySQL 8.0 から 8.0.25、および NDB のバージョン 8.0 から 8.0.25-ndb-8.0.25 に基づく NDB Cluster リリースについてそれぞれ説明します。 まだリリースされていない MySQL バージョンの機能のドキュメントが含まれている場合があります。 リリースされたバージョンの詳細は、「MySQL 8.0 リリースノート」を参照してください。 MySQL 8.0 の機能. このマニュアルでは、MySQL 8.0 のエディションによっては含まれていない機能について説明します。このような機能は、ご自身にライセンス付与されている MySQL 8.0 のエディションに含まれていない場合があります。 MySQL 8.0 の使用しているエディションに含まれる機能に関する質問がある場合は、MySQL 8.0