タグ

MySQLに関するpieqのブックマーク (6)

  • MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記

    MySQLでテーブルへのカラム追加、インデックス追加やテーブルの再編成などを行うと、その間テーブルに共有ロックがかかってしまいます。そのためこれらのメンテナンス処理は、通常利用者の少ない深夜早朝帯にサービスを止めて実施する必要があります。日はそれを無停止、オンラインのままでできないかという話題です。 基的なアイデア メンテナンス対象の元テーブルをコピーして、作業用の仮テーブルを作ります 仮テーブルに対して、カラム追加などの変更を加えます その間、元テーブルに対して行われる更新処理について差分を記録しておきます 仮テーブルの変更が終わったら、記録しておいた差分データを仮テーブルに反映します 差分データの反映が終わったら、元テーブルと仮テーブルを入れ替えます これと似たようなことを考えた方は結構いらっしゃるのではないでしょうか。ただ、言うは易し、行うは難しです。整合性がきちんと取れるかどう

    MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記
  • Rails におけるレースコンディションの例とその回避方法 - LukeSilvia’s diary

    最近立て続けにレースコンディション問題に遭遇したのでメモ。 レースコンディション(競合状態)とは、複数のプロセスやスレッドが共有リソースに対して何らかの操作をする際に、処理のタイミングによって結果が異なってしまう状態のこと。よくトランザクションの解説の際に銀行口座の例として紹介されるおなじみのやつです。 今回は、アプリケーションの書き方によって発生するレースコンディションと、MySQL のテーブル定義時の制約不足で発生するレースコンディションについてそれぞれ紹介したいと思います。 どちらの場合も共有リソースはDB で、条件を満たすと意図しない形でデータが保存されてしまいます。 サンプルアプリケーション サンプルアプリケーションとして、簡単なアクセス解析機能付きの短縮URL ツールを考えます。 アクセス解析機能として、以下のような機能を持つとしましょう。 URL毎 にクリック数を計測できる

    Rails におけるレースコンディションの例とその回避方法 - LukeSilvia’s diary
  • dublish.com - Simple Optimization for PHP and MySQL

    Simple Optimization for PHP and MySQL Saturday April 29 2006 03:23 Here is a list of a few very simple tips for optimizing your php/mysql applications. Keep these in mind while developing. MySQL MySQL is interpreted from right to left so you should put the most significant limiters as far to the right as possible. Only select fields you need, instead of selecting * (everything). Don't put things t

    pieq
    pieq 2009/05/28
  • MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 6 MySQL SQL言語リファレンス

    MySQL は非常に複雑でありながら、直感的に使用できる覚えやすい SQL インタフェースです。この章では、MySQL を効率的かつ効果的に使用するために知っておく必要がある、さまざまなコマンド、データ型、および関数について説明します。また、この章から、MySQL に組み込まれているすべての機能について参照することもできます。多岐にわたるインデックスの中からそれぞれの内容を参照することによって、この章を効果的に使用することができます。 This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up t

  • MySQL :: MySQL 8.0 リファレンスマニュアル :: 12.8 文字列関数および演算子

    ASCII(str) 文字列 str の左端の文字の数値を返します。 str が空の文字列である場合は、0 を返します。 str が NULL である場合は NULL を返します。 ASCII() は、8 ビット文字の場合に動作します。 mysql> SELECT ASCII('2'); -> 50 mysql> SELECT ASCII(2); -> 50 mysql> SELECT ASCII('dx'); -> 100 ORD() 関数も参照してください。 BIN(N) N のバイナリ値の文字列表現を返します。N は longlong (BIGINT) 数字です。 これは、CONV(N,10,2) と同等です。 N が NULL である場合は NULL を返します。 mysql> SELECT BIN(12); -> '1100' BIT_LENGTH(str) 文字列 str の長

    pieq
    pieq 2008/08/31
  • MySQLクイック・リファレンス

    この文書は、osCommerceで使用しているデータベースMySQLの基的な使い方について解説しています。おもにデータベースの管理者よりも、ユーザに向けて書かれています。 はじめに ここでは、MySQLサーバは起動しているものとして説明します。 MySQLの文字について MySQLでは、データベース名やテーブル名の大文字と小文字を区別しています。それ以外は区別しません。 MySQLのフィールド名やテーブル名に使える文字は、英数字と_(アンダーバー)、$、サーバのキャラクタセットにある文字です。 知っておきたいコマンド mysqladmin(データベースの作成・削除や、MySQLサーバの情報を得る) mysqlshow(データベース、テーブルの情報を表示する) mysqlMySQLクライアントの起動) mysqldump(データベース、テーブルをダンプする) myisamchk(テーブル

    pieq
    pieq 2008/08/31
  • 1