タグ

mysqlに関するfuki1234のブックマーク (16)

  • (MySQL)SQL_CALC_FOUND_ROWSを使う - 優柔不断なプログラマの日記

    最後にSELECTした行数を取得するFOUND_ROWS()。 ページングする場合など、分母が欲しい場合があります。 たとえば100レコードあるけど、1ページに表示するデータは10レコードの場合。 普通に考えたら、10レコード取得するSELECTと、同じ条件でCOUNT(*)するSELECTを発行すると思います。 MySQLにはこういう場合用とも言える機能があります。 以下の実行例の通りです。 ま、SELECTを2回発行することに違いはないですが、スマートですよね。 ■SQL_CALC_FOUND_ROWS指定なし mysql> SELECT * FROM tbl_name LIMIT 10; ----------------------------- 10 rows in set (0.00 sec) mysql> SELECT FOUND_ROWS(); +--------------

    (MySQL)SQL_CALC_FOUND_ROWSを使う - 優柔不断なプログラマの日記
  • brass.to - a really cool domain parked on Park.io

    The domain name brass.to is being parked on Park.io. Contact the domain owner to make an offer right now...

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

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

    MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記
    fuki1234
    fuki1234 2010/07/04
    こんな厳密に考えたことなかったなぁ。alterポン!ってやってた。まぁ、サービス内容次第だろうけど、いい知識を得られた。
  • 『Windows7にApache2.2とPHP5.3とMySQL5.1をインストール』

    ローカルのPCに、Web用の開発環境を入れた時の覚え書きです。 ちまちまとつまずいて、一週間かかりました…。

    『Windows7にApache2.2とPHP5.3とMySQL5.1をインストール』
    fuki1234
    fuki1234 2010/04/07
    php.iniのextensionをごちゃ盛りにしてしまって、php単体で動かないことに気付くのに時間かかった。
  • MySQL - ユーザの操作(作成、パスワード変更、削除)

    MYSQLのユーザ関連コマンドのついて紹介しています。 [toc] ユーザの作成 ユーザ名は半角英数の16文字までです。 構文 GRANT権限 ON *.* TO ユーザ名 IDENTIFIED BY 'パスワード' WITH GRANT OPTION; 全ての権限を与えた場合 ALL PRIVILEGES        =全ての権限を与える WITH GRANT OPTION     =権限の書き換えを許可する 使用例 mysql> GRANT ALL PRIVILEGES ON *.* TO sasuke IDENTIFIED BY 'aaa' WITH GRANT OPTION; Query OK, 0 rows affected (0.03 sec) 一部権限、SELECT,INSERTのみ与えた場合 使用例 mysql> GRANT INSERT,SELECT ON *.* TO

    MySQL - ユーザの操作(作成、パスワード変更、削除)
  • [解説]Sun買収により,3年越しでMySQLを手に入れたOracle

    2009年4月20日(現地時間),米Oracleが米Sun Microsystemsを買収することで両社が合意した(関連記事)。買収により,データベース専用機という形でハードウエアに進出(関連記事)していたOracleはSunのサーバーとストレージ,約4万7000社というユーザーベースを手にする。 さらに,OracleはSunの持つGlassFishなどのミドルウエア群も手にすることになる。中でも注目されているのが,2008年にSunが買収したMySQLである(関連記事)。データベース最大手のOracleにとって,オープンソースのMySQLは事実上最大の競合製品であるからだ。 Oracleは2006年にMySQLの買収に失敗 Oracleは3年前の2006年にMySQLの買収を試みて失敗している(関連記事)。米メディアの報道によればMySQLOracleの買収提案を拒否。OracleはM

    [解説]Sun買収により,3年越しでMySQLを手に入れたOracle
    fuki1234
    fuki1234 2009/04/21
    やっべぇ。オープンソースmysqlがなくなるかも!?postgres勉強し直そう。
  • mysqlでのテーブル分割時の検索手法についてお聞きします。…

    mysqlでのテーブル分割時の検索手法についてお聞きします。 例えば、1億件の日記データをidによって5000万件ずつ別の テーブル(DiaryTable1, DiaryTable2)に分けるとします。 ※分け方は単純に剰余計算。 Insert時はidから剰余計算で格納先テーブルが分かるのでいいのですが、 全日記データから検索を実行したい場合、 DiaryTable1とDiaryTable2からそれぞれselectを実行し、 アプリ側で結果をマージするという処理しかないと思います。 こうすると、データのソートなどアプリ側の処理がかなり複雑化する気がします。 こういった形で複数にテーブル分割を行っていて、 それら全部からどのように(横断検索とでもいうのですかね?) selectを行い、マージをしているか、いい手法があれば教えて下さい。 ちなみに、環境はMysql5 + php5(adodb)

  • PASSWORD()関数 - citrus_busの日記

    ログインするときにユーザとパスワードを入力する。 そういったログイン画面はどこにでもあると思う。 今回そういったログイン画面を作った。 何も問題なく出来、実際にログイン自体も出来た。 しかし、サーバにあげて動かしてみたらパスワードが不正といわれなぜかログイン出来なかった。。。。 ローカルでログイン出来たのにサーバにあげたとたんログイン出来ないとは何故に? と、不思議に思っていたところ前日のバージョン違いによるエラー事件のことを思い出した。 ユーザのパスワードはPASSWORD関数を使ってDBに登録している。 ログイン処理では入力されたパスワードをPASSWORD関数使って変換しDBの値と比較している。 このPASSWORD関数が問題だった。 PASSWORD関数は4.1より前だと16バイト長のハッシュ値を返してくるのに対し、 4.1以降では41バイト長のハッシュ値を返すそうだ。 当然それぞ

    PASSWORD()関数 - citrus_busの日記
    fuki1234
    fuki1234 2008/06/26
    あったあった。v4とv5使ってて同じようなこと起こったなぁ。
  • 【MySQLウォッチ】第8回 MySQLチューニングのテクニック:ITpro

    SlowLogの設定 環境設定ファイル(Windowsではmy.ini,Linuxではmy.cnf)に次のような設定を加えるとSlowLogが有効になる。 log-slow-queries SlowLogの有効化(ログファイル名を指定可能) long-query-time=2 SlowLogに記録する処理時間の上限 log-long-format インデックスを使用しないSQL文の記録 long-query-timeパラメータは,SlowLogに記録するしきい値を秒単位で設定する。この場合には,2秒超える処理時間を費やしたSQL文を記録する。また,log-long-formatを指定すると,インデックスを使用しないSQL文もSlowLogに記録する。 SlowLogの確認 SlowLogが動作しているかどうかは,次のコマンドで確認できる。log_slow_queriesがONであれば有効と

    【MySQLウォッチ】第8回 MySQLチューニングのテクニック:ITpro
  • 詳解 MySQL

    MySQLソースは公に利用できるという意味ではオープンなものだが、そのソースを理解できなければ質的にはそれはクローズなものになる。」(書「はじめに」より) しかし、優秀なプログラマたちのアイデアと努力の結晶であるソースコードを読み解くには、彼らのインスピレーションと努力の痕跡を知る必要がある。書は、コードに秘められたプログラマたちのアイデアに触れながら、MySQLのソースコードを読み解くための指針を提供する。MySQL内部の詳細に踏み込むための手引書である。 はじめに 1章 MySQL歴史とアーキテクチャ 1.1 MySQL歴史 1.2 MySQLアーキテクチャ 1.2.1 コアモジュール 1.2.2 各コアモジュールの連携 1.2.3 各コアモジュールの詳細 2章 MySQLソースコード利用の基 2.1 Unixシェル 2.2 BitKeeper 2.3 BitKeeper

    詳解 MySQL
  • MySQL 文字化け問題を本気で直す

    mysql> status; -------------- mysql Ver 14.7 Distrib 4.1.20, for redhat-linux-gnu (i386) using readline 4.3 Connection id: 36 Current database: staff2006 Current user: maiha@localhost SSL: Not in use Current pager: lv Using outfile: '' Using delimiter: ; Server version: 4.1.20 Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: latin1 Db characterset: latin1 Client char

    fuki1234
    fuki1234 2007/08/21
    オプション意味ねぇのか!
  • 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(),

  • 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

  • 大文字と小文字の区別 - citrus_busの日記

    Javaをやるといってかれこれ1年。。。。 今後仕事で使っていくことになるので、もしかしたらJavaについて書いていくかもです。 それはさておき、今日はちょっとしたことでつまってしまったので、 今後同じようなことでつまらないようメモ代わりに書いておきます。 MySQLのデータベース名、テーブル名はOSによって大文字と小文字の区別がされる。 とのことです。 今日、Windowsで開発を進めていたものをサーバに上げて確認しようとしたのですが、 エラーが起こって動きませんでした。 エラーの内容は「テーブルが存在しません」というものでした。 けれど、今までにローカルでそのようなエラーは出ていませんでしたし、 テーブルやデータはサーバのテーブルをダンプして使っているので存在しないということはありませんでした。 10分ほど悩んで、どうしてもわからなかったので誰かに聞いてみようかと思った時、 ふとあるこ

    大文字と小文字の区別 - citrus_busの日記
  • 「PostgreSQLは遅い」は本当か?:OSSデータベース比較 - CNET Japan

    印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます LAMPやLAPPといった言葉が示しているように、オープンソースソフトウェア(OSS)での代表的なリレーショナルデータベース管理システム(RDBMS)といえば、「MySQL」と「PostgreSQL」だ。この2つのRDBMSは同等であるかのように思われているが、しかしPostgreSQLのユーザー団体「日PostgreSQLユーザ会」で理事長を務める片岡裕生氏によれば、「PostgreSQLはあまり信用されていない」ということがあるそうだ。 「十分にチューニングされたMySQLとチューニングしていないPostgreSQLを比較したり、反対にチューニングされたPostgreSQLとチューニングしていないMySQLを比較したり、あるいは比

    「PostgreSQLは遅い」は本当か?:OSSデータベース比較 - CNET Japan
    fuki1234
    fuki1234 2007/05/06
    何だかはっきりしない結論だなぁ。
  • GIGAZINE、新サーバに移転完了 - GIGAZINE

    というわけで、ついに新サーバに移転完了しました。これで負荷が軽減される……はず。予想される負荷に対応するため、カウント数は必要最小限のもののみにとどめました。そのほかにもデータベースの構造を一新しました。これに伴い、トラックバックなどは全リセットされてます、すいません……。 何か不具合などがある場合には臨時用のこちらのメールフォームからご連絡いただければ助かります。 というわけで以下、旧サーバと新サーバの設定などについて。サーバのカスタマイズに興味のある人向け記事第2弾。今度は最も難航したMySQLの設定です。 ◆MySQL メモリをたくさん使えば使うほど高速にレスポンスは返ってくることになるが、GIGAZINEのようにMySQLの中に記事文しか入っていない場合、つまり非常にコンパクトな場合はメモリをたくさん使ったからと言って反応速度が劇的にアップするわけではない。むしろメモリを極限まで

    GIGAZINE、新サーバに移転完了 - GIGAZINE
  • 1