タグ

MySQLに関するhardboiled243のブックマーク (19)

  • 共有ライブラリのコンパイル時に必要な検索パスを追加する方法 - ドキッ!はてなブログに移転しました!

    依存するsoファイルが見つからない!? 共有ライブラリを作成したら実行時に依存するsoファイルが見つからない的なエラーが発生した。 具体的にはrubymysql apiモジュールライブラリで起きた gem install mysqlでインストールすると mysql 2.8.1 が入る。 でもコレが実行時にエラー起きる。 エラーの内容は LoadError: libmysqlclient.so.18: cannot open shared object file: No such file or directoryと出る。 mysqlモジュールはnative extensionなので内部でmysql_api.soというファイルを生成してそれを利用している。 そこで ldd /path/to/mysql_api.soとしてみると libmysqlclient.so.18 => not fou

    共有ライブラリのコンパイル時に必要な検索パスを追加する方法 - ドキッ!はてなブログに移転しました!
  • 【MySQL】大文字小文字、全角半角区別しないでマッチする検索をしたい at softelメモ

    問題 select * from member where namae like '%サトウ%'; こんなSQLで、namaeがサトウ、サトウ、さとう、サトウ(一部半角)何でもマッチさせたい! 答え では、これで。 select * from member where namae collate utf8_unicode_ci like '%サトウ%'; データベースがutf8でないときは、もうひとつ変換を入れて、 /* ERROR 1253: COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'ujis' など言われたら */ select * from member where convert(namae using utf8) collate utf8_unicode_ci like '%サトウ%'; 数字の全角/半

    【MySQL】大文字小文字、全角半角区別しないでマッチする検索をしたい at softelメモ
  • MySQL のチューニング (ボトルネックの検出) : Figure out!! -ドリコムエンジニアブログ

    こんにちは! onk です。 SAPさんが各社とも「ソーシャルアプリは負荷対策が大事」って言っていますね。弊社でも mixi アプリ(PC),mixi アプリモバイルをリリースしたときはお祭り状態だったので,ふりかえりも兼ねて MySQL のボトルネックを調べる方法を書いてみました。(幸い,モバゲーオープンゲームのリリース時はこれらの経験が役に立ったので何ともなかったです) といっても 9 割方 そもそもサーバの設定がおかしい 更新が多いテーブルなのに MyISAM エンジン for 文の中でクエリを発行 INDEX 張ってない データ量がえらいことになってる 辺りなんですけどねー。 基は下から まず,ボトルネックを調べるときは下の層から上がっていくのが基です。たぶん。 なので ssh でサーバに入って (LoadAverage 300 ぐらいまでならなんとか入れますね) 以下のコマン

  • MySQLでインデックスを使って高速化するならCovering Indexが使えそう - (゚∀゚)o彡 sasata299's blog

    2009年10月28日09:33 MySQL MySQLでインデックスを使って高速化するならCovering Indexが使えそう Linux-DB システム構築/運用入門 (DB Magazine SELECTION) 著者:松信 嘉範 販売元:翔泳社 発売日:2009-09-17 おすすめ度: クチコミを見る 最近、このを読んでいます。非常に面白いし、参考になります〜。中でもインデックスについての記事が特に興味深かったので簡単にまとめてみます。 前提 ・インデックスは検索性能には効果があるが、更新性能は落ちてしまう ・MyISAM と InnoDB ではインデックスの構造が違う ・インデックスは B+Tree インデックスと呼ばれ、ルート、ブランチ、リーフの階層構造になっている ・インデックスはソートされた状態で作成されている まずは MyISAM と InnoDB でのインデックス

  • 検索条件が複数の場合のインデックスの張り方

    Mysql5.0 + ASP.NETで開発中です。 サーバーはWindows2003サーバーです。 とある検索サイトを作っていますが、1テーブルのフィールド数が80くらいあります。 また、レコード数は常時100万件程度です。 このテーブルの検索を行うときに、ユーザーが任意の検索条件を設定できるような画面なのですが、実際に検索に使用されるフィールド数は最大で10です。 例えば、where a = 999 and b = 999 や where a = 999 and c = 999 and f = 999 や where b = 999 and d = 999 and f = 999 and g = 999 など、where句で使用されるフィールドがユーザーの指定により常に異なります。(999は任意の値です) ORDER BYに使用されるフィールド数は3です。 現状ではインデックスは張ってい

    検索条件が複数の場合のインデックスの張り方
  • MySQL 5.1のmysqldumpslowで快速チューニング - SH2の日記

    MySQL 5.1のmysqldumpslowを使うとチューニングが楽になる!という話題です。 mysqldumpslowはもともとMySQLに付属しているツールで、スロークエリログを集計してくれるものです。これ自体はMySQL 5.1で特に変わったところはありませんが、スロークエリログ体の方が機能強化されているため、組み合わせるとなかなか便利になっています。MySQL 5.1におけるスロークエリログの主な機能強化は以下の三点です。 long_query_timeに1秒未満の値を設定できるようになった。 出力先を設定できるようになった。 これらの設定をオンラインで変更できるようになった。 これでどうなるかというと、MySQLの性能分析をしたいと思ったときに、サーバを止めずにその場で mysql> set global slow_query_log = 1; mysql> set glob

    MySQL 5.1のmysqldumpslowで快速チューニング - SH2の日記
  • MySQL 高速化メモ

    ●はじめに MySQLでSELECT文が遅いと感じたり、INSERT処理だけで1日かかった!なんて事ありませんか? そんな時はページのメモを参考に高速化してみてください。 ちょっとした設定だけで1日かかる処理が数分で終わる(!?)なんて事も。 ぜひお試しあれ。 ●SELECT文の高速化 1.テーブルを分ける。 同じ構造のテーブルをいくつかに分割する。例えば、wordというテーブルがあるとすると、 ja_word,en_wordなど国別に分割したり、word2005,word2006など年月日で分割してみる。 2.テーブルにインデックスを設定する。 create index インデックス名 on テーブル名 (フィールド名); 文字列の場合はインデックスに設定する文字数を指定可能。 create index インデックス名 on テーブル名(フィールド名(要素数)); 私がやってみた感じで

  • 愛と苦悩の日記: MySQLのINSERT文を高速化する

    70年代生まれの人々のためのWebサイト think or die の「愛と苦悩の日記」をブログ化 1997/12/13から現在まで、日常生活をテツガクするエッセー集 中国の歌やドラマ関係も。ジェイド・イン(Jade Yin)、alan「懐かしい未来」、『地下鉄の恋』など。 仕事で「MySQL」を使うことになったのだが、Notes/DominoのLotusScript(Visual Basic互換の言語)のForループの中から、ADODBオブジェクトを使って、ODBC接続でINSERT文をくりかえしMySQLサーバへ発行すると、処理速度が遅いのが気になった。 MySQLのドキュメントで「INSERTクエリの速度」の部分を読むと、「複数ステートメント」を利用すると高速になるという。「INSERT INTO table_a VALUES (1, 23), (2, 24), (3, 2

  • DBチューニングできますか? - Perl日誌

    あらすじ 面接に行くとDBに関しての知識はどれぐらいあるのかを問われる事が多々あります。 それは良いのですがその質問がざっくりとしている事が多々あります。たとえば次のように広い質問をうけたりします。 「DBのチューニングはできますか?」 何を基準にした質問なのか、何を基準にして答えればよいのかいつも困るので事前に回答をまとめてから面接に行くとしようという試みです。*1。 そもそもDBのチューニングって何? DBのチューニングできますか?と言われて困ったのは、「相手が期待している回答は何?」という事です。 前提が異なる両者が会話をしても収束しないのでまずは言葉の定義を明確にしたいと思います。 ちなみにこの質問に「ファイルに保存されている情報をより少ない手順で引き出せるか、という質問なのでしょうか?」と逆に質問したところ相手も困惑していました。 今思えば「WEBアプリ作って運営してるとしょっち

    DBチューニングできますか? - Perl日誌
  • MySQL5.5.3-m3のDATETIME型のバグ。あとMySQLの DATETIME型は本当に遅いのか検証してみた - 2010-04-30 - 小野マトペの業務日誌(アニメ制作してない篇)

    バグの話 近々ふぁぼったーDBのInnoDB化を企てているので、それに伴いMySQL5.0.67(Tritonn)から、先日リリースされたばかりのMySQL5.5.3-m3に乗り換えてみた。RC(リリース候補)版ということで、GA版とほぼ変わらない品質と聞いたので、割と軽い気持ちでインストールしたんだけど、いきなりバグにハマった。 バグとは、DATETIME, TIMESTAMP, DATE, TIME型と文字列定数との結合でインデックスが使われない、というもの。 以下のような、date(DATE型)の結合しかしていないクエリでも、dateインデックスが使われず昇順フルテーブルスキャンされ、20秒くらい掛かった。 select date from STATUS force index(date) where date='2010-01-19' limit 10; この現象は、5.5.3,5

    MySQL5.5.3-m3のDATETIME型のバグ。あとMySQLの DATETIME型は本当に遅いのか検証してみた - 2010-04-30 - 小野マトペの業務日誌(アニメ制作してない篇)
  • MySQL 5.1 on Cent OS 5.3

    MySQL 5.1がGAになってからしばらく経ったのに使った事無かったので、今やっている実験プロジェクトで採用してみた。 CentOSの標準パッケージだとmysqlのバージョンは5.0。mysql関連パッケージもmysql-5.0に依存しているので、その辺をクリアする必要がある。 とりあえず手順やエラーメッセージのみを簡潔に説明。 1. 既存のMySQLパッケージを(インストールされていれば)アンインストール 2. MySQL公式サイトからのRPMパッケージをインストール この辺りからパッケージをダウンロード。使用したのは以下のもの。 MySQL-client-community-5.1.34-0.rhel5.i386.rpm MySQL-server-community-5.1.34-0.rhel5.i386.rpm MySQL-shared-community-5.1.34-0.rhe

  • MySQLの高速化 - FreeStyleWiki

    はじめに MySQLでSELECT文が遅いと感じたり、INSERT処理だけで1日かかった!なんて事ありませんか?そんな時はページのメモを参考に高速化してみてください。ちょっとした設定だけで1日かかる処理が数分で終わる(!?)なんて事も。ぜひお試しあれ。 SELECT文の高速化 テーブルの分割 同じ構造のテーブルでもいくつかに分割して1テーブルあたりのデータ量を減らす。例えば、wordというテーブルがあるとすると、ja_word,en_wordなど国別に分割したり、word2005,word2006など年月日で分割してみる。 テーブルにインデックスを設定する。 create index インデックス名 on テーブル名 (フィールド名);文字列の場合はインデックスに設定する文字数を指定可能。create index インデックス名 on テーブル名(フィールド名(要素数));私がやってみた

  • MySQLクイック・リファレンス

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

  • MySQL初心者入門講座

    格的なプログラミングを学びたい場合は Java初心者入門講座 を次のステップとしてご活用ください。 ・Web系のプログラミングを学びたい場合は PHP初心者入門講座 を次のステップとしてご活用ください。 MySQLのようなリレーショナルデータベースでは、複数のテーブルを結合することができます。 今回は「T01Prefectureテーブル」と「T00Areaテーブル」を結合して、まるで一つのテーブルのように表示してみます。 テーブルの結合には同じ値のフィールド同士を使います。結合に使われる「AREA_CD」のようなフィールドをキーと言います。 SELECT * FROM T01Prefecture; SELECT * FROM T00Area; 結合の種類には、内部結合(インナージョイン)、外部結合(アウタージョイン)、自己結合(セルフジョイン)、交差結合(クロスジョイン)、和結合(ユニ

    MySQL初心者入門講座
  • データベースを設計する際に、 ・テーブル名 ・カラム名 を決定します。…

    データベースを設計する際に、 ・テーブル名 ・カラム名 を決定します。 その際の、命名規則で悩んでいます。 例えば、ユーザテーブル「user」内に、 ユーザID「user_id」があるとします。 別テーブルにも、ユーザIDをユニークとしたカラムがある場合、こちらも「user_id」とするか、「テーブル名_user_id」にするかで悩んでいます。 今まではカラム名はかぶらないように全て変えていましたが、実際に運用されている方はどのようにしているのか気になりました。 この場合、どちらのほうがいいのでしょうか?

  • sakano1:MySQL - 初期設定

    (再構築: 2009/10/01 00:00:40 ) まえがき 最初にMySQLをいじったのは、グローバルサーバであるFreeBSD上だった。 手元にある、「MySQL&PHPでつくるWebデータベース」から判断すると、たぶん2002年ぐらいではなかったかと思う。 を身ながら色々やってみたが、実用レベルのものを作るまではしなかった。 ゃ、当時、DBを利用してまで作りたいものがなかったので.... ^^; が、某プロジェクトMySQLを操作することになり、検証マシンであるLinux上に環境構築することにした。 初期設定コマンド FreeBSD上に構築したときは、mysqladminコマンドでmysql-rootユーザを作成し、その後mysql-rootで初期設定をしていったように記憶しているが、今回構築するにあたり調べると、mysql_secure_installatio

  • pop3/imap サーバdovecotのユーザをmysqlで管理する|株式会社 フラッツ

    dovecot(pop3/imapサーバ)をmysqlとpostfix adminで管理する 少し前に、それなりの数のユーザ数を扱うメールサーバを立てました。 MTAにはpostfix、POP3サーバにはdovecot 1.0.7 、アカウント管理アプリにはpostfix admin(http://sourceforge.net/projects/postfixadmin/)、アカウント情報の管理にはmysqlを利用するといった構成にしました。 postfix adminでは、 ・WEBアプリで管理ができる。 ・複数ドメインを管理可能。 ・各ドメインに複数管理者を設置可能 ・各ドメインでは、仮想メールユーザ(UNIXユーザはつくらない)を設定可能 ・各ドメインでは、メールアドレス転送設定を設定可能 と基的な機能は網羅しています。 メールをバーチャルホストで管理していて、簡単にメールユーザ

  • 次世代ECサイト構築プラットフォーム - Live Commerce!

    海外を目指す挑戦者たち なぜLive Commerceにたどり着いたのか? 海外向けネットショップ構築を検討されていますか? 当社は支援ではなく、最初から成功保証。全く違います。 Live Commerce Ver 4 あらゆる越境ECプラットフォームで海外販売可能に 海外向けネットショップ構築を検討されていますか? 最新のLive Commerce 4は商品登録後、Googleショッピングやfacebookで簡単に販売することができるようになりました。

    次世代ECサイト構築プラットフォーム - Live Commerce!
  • Zend Frameworkのデータベース接続 - [Zend Framework/PHP] ぺんたん info

    だったとすると、次のようになります。 $params = array ('host' => '127.0.0.1', 'username' => 'user', 'password' => 'pass', 'dbname' => 'datebase', 'charset' => 'UTF8'); $db = Zend_Db::factory('PDO_MYSQL', $params); これで$dbにデータベース接続インスタンスが生成されます。 コントローラやモデルで使用するためには 上記の例では単発での使用方法になります。 データベースの接続については、サイト内のいろいろなところで使用すると思います。 その場合に、各モデルや各コントローラ内でDBの接続情報を書いてはいけません。 なぜならデータベースを変更したときに、すべてのファイルを変更しなければいけないからです。 Zend Frame

  • 1