タグ

mysqlに関するcalcsのブックマーク (22)

  • Amazon RDS における MySQL 5.6 のパラメータ設計例 - bekkou68 の日記

    (最終更新日: 2017/9/25) はじめに production 環境で MySQL 5.6 動かすためのパラメータ設計についてまとめました。この記事がカバーする内容は次のとおりです。 パラメータを設定するスクリプト。 各パラメータにおける変更するかどうかの判断基準。 想定されるメモリの消費サイズを算出してパラメータが妥当かどうか確認する方法。 サービスの状況に応じててきぎ読みかえてください。 【結論】パラメータグループ作成・パラメータ設定のスクリプト 結論として、パラメータグループを作成し、パラメータを設定する aws-cli のスクリプトを置きます。Amazon AWS の Web Console から設定することもできます。 #!/bin/sh # == パラメータグループ作成 aws rds create-db-parameter-group --db-parameter-gr

  • MySQLでネットショップの詳細検索にインデックスを活用しまくる方法(後編)

    前回のおさらい まずは前回でやったことをザッとまとめておきます。 転置インデックス用のテーブルを作る キーワード検索用にngram(bigram)で分かち書きしたデータを作る それ以外のフラグによる検索のために、n(今回は2)文字を超える特殊文字列で他の属性を突っ込む 全文検索インデックスを張る 全文検索クエリを調整して条件に合致するIDだけを抽出する 残る問題 ソート(ページネーション含む) 更に複雑なクエリ(柔軟な価格レンジ、地理空間)に対応するための手法 どれだけ早くなったのか 抽出したID群をソートする さて、では前回の続きの内容に入ります。itemsテーブルにおける条件合致商品のIDのリストが現在得られています。 ここでは仮に得られたIDを「1,5,16,45,78,120,201」としましょう。此処では価格(items.price)が安い順(asc)に並ぶようにクエリを書きます

    MySQLでネットショップの詳細検索にインデックスを活用しまくる方法(後編)
  • Home

    All of Percona’s open-source software products, in one place, to download as much or as little as you need.

  • MySQLでネットショップの詳細検索にインデックスを活用しまくる方法(前編)

    こんにちは。もとやんです。 DBAとしてのネタもたまには書きたい! ということで、MySQLのインデックスをフルに使って、ネットショップや、べログやぐるなびなどの検索サイトによくある詳細検索を高速に行うための、SQLのクエリの高速化手法と言うか、テーブル設計を今回は紹介します。 あまりネットのブログとかでは見かけないノウハウだと思うので、ショッピングカートやグルメサイトのシステムを書こうとする人にとっては参考になるんじゃないでしょうか。 とはいえ、これは私が必要に応じて数年前に頭を捻って考えたものなので、もっと高効率に書けるよ!という方がおられれば、ぜひ教えて下さい。 今回扱うような検索にはSolr(Lucene)などが実は向いていたりするんですが、新しいストレージを作ると監視対象は増えるわ、そもそも普段の運用ノウハウ(チューニングや、クラッシュ時のリカバースキル、バックアップ方法など)

    MySQLでネットショップの詳細検索にインデックスを活用しまくる方法(前編)
  • スマフォ向けのPHP/MySQLで書かれたADサーバ実装オープンソースソフトウェア「mAdserve」:phpspot開発日誌

    スマフォ向けのPHP/MySQLで書かれたADサーバ実装オープンソースソフトウェア「mAdserve」 2011年08月10日- mAdserve | Open Source Mobile Ad Server スマフォ向けのPHP/MySQLで書かれたADサーバ実装オープンソースソフトウェア「mAdserve」 MobFoxという月間数十億インプレッションを配信しているチームによって作られていて、システムがスケールするように設計されているらしいです。 スマートフォンサイトのみならず、アプリもターゲットすることができ、iOS, Android, Windows7アプリ用のSDKも公開されています キャンペーン作成画面 キャンペーン一覧 サイト、アプリケーション一覧 その他のスクリーンショット 今後重要度がますます上がってくるスマートフォン用のアドサーバということで、そういうサービスも多いと思

  • ORDER BYのチューニング|株式会社 フラッツ

    谷口です。 MySQLでORDER BYを付けると非常に実行時間がかかる。。。なんて経験があると思います。私もORDER BYに悩まされることが多いです。今回はORDER BYを伴うクエリのチューニングのうちの一つを紹介したいと思います。 その方法とは、サブクエリでソート済みのテーブルを作成して結合するという方法です。 たとえば、下記のようなSQL文があったとします。 SELECT t1.col1, t2.col2 FROM table1 t1, table2 t2 WHERE t1.col1=t2.col1 AND t1.col2 = 1 ORDER BY t1.col1 DESC LIMIT 10; これを下記のように、t1をサブクエリでソートしてから結合する感じです。 SELECT t1.col1, t2.col2 FROM (SELECT * FROM ta

  • DBサーバーの負荷分散

    MySQLアクセスを負荷分散する ユーザーからのアクセス数が非常に多いWebサイトにおいて、MySQLのSLAVEサーバーを複数台並べて負荷分散させるということがよく行われています。ただ、Webアクセスの負荷分散は一般的なテーマなのでいろいろなところで語られているのに対し、DBアクセスの負荷分散というテーマは一般的でないのかあまり語られていないように感じます。 DBアクセスを負荷分散するにあたって一番荒っぽい方法は、Webサーバー上のプログラムの中でどのSLAVEサーバーに接続するかをランダムで決める方法です。ランダムと言っても長時間アクセスしているとほぼ接続先が均等化されるので、一見この方法でも問題ないように見えます。しかしこの方法だと、接続しに行こうとしたSLAVEサーバーが高負荷もしくはサービス停止中であっても構わず接続しに行ってしまうという問題があります。 このような問題を解決する

  • ricollab Web Tech Blog » Blog Archive » MySQLパーティショニングについて(その1:基本知識編)

    初めまして、リコーの濱田です。このたび私もブログを担当することになりました。今後ともよろしくお願いいたします。 エントリではデータベースに関する技術トピックとして、MySQL 5.1 から導入された機能であるパーティショニングについて書こうと思います。少し長くなりそうなので、「基知識編」「性能検証編」の2回に分けて書くことにします。 今回は「基知識編」として、パーティショニングの概要と基的な使い方について紹介します。 パーティショニングの概要 パーティショニングとは、事前に設定されたルールに従ってデータをパーティションと呼ばれる部分的なテーブルに分割する仕組みです。 データ挿入時には、設定ルールに従ってデータが該当するパーティションに自動的に振り分けられます。データ参照時には、オプティマイザがクエリから必要なパーティションを判断し、該当するパーティションのみにアクセスします。これ

  • ServersMan@VPSでMySQL InnoDB Pluginをあきらめない - SH2の日記

    DTIの仮想専用サーバServersMan@VPSを借りてみました。 Entryプランはメモリが256MBでまあ足りるだろうと思っていたのですが、ServersMan@VPSではOpenVZという仮想化ソフトウェアを使っていて、なんとスワップの利用が禁止されているのだそうです。つまりなにがなんでも総メモリ使用量を256MB以下に抑える必要があります。ちょっと難しそうです。 とりあえずMySQL 5.1.45をインストールして、すべてデフォルトで起動するとこんな感じです。 # free -m total used free shared buffers cached Mem: 256 23 232 0 0 0 -/+ buffers/cache: 23 232 Swap: 0 0 0 # service mysql start Starting MySQL. SUCCESS! # free

    ServersMan@VPSでMySQL InnoDB Pluginをあきらめない - SH2の日記
  • HowFriendFeedUsesMySqlToStoreSchemaLessData - FriendFeed では MySQL を使いどのようにスキーマレスのデータを保存しているのか

    HowFriendFeedUsesMySqlToStoreSchemaLessData - FriendFeed では MySQL を使いどのようにスキーマレスのデータを保存しているのか 目次 この記事について FriendFeed? では MySQL を使いどのようにスキーマレスのデータを保存しているのか 背景 概観 詳細 一貫性と原子性 性能 FriendFeed? では MySQL を使いどのようにスキーマレスのデータを保存しているのか この記事について "How FriendFeed? uses MySQL to store schema-less data" の日語訳です http://bret.appspot.com/entry/how-friendfeed-uses-mysql CC 2.5 でライセンスされています: http://creativecommons.org/

  • MySQLバックアップ頂上決戦!! LVMスナップショット vs InnoDB Hot Backup

    スナップショットを使えばとある瞬間のディスクやファイルシステムのデータをいつでも後から参照することができる。しかもスナップショットの作成は一瞬だ。スナップショット機能を活用すれば最強のオンラインバックアップソリューションが出来るだろう。 しかし、スナップショットでバックアップを取るなんて危険な操作じゃないのか?!と不安に思われる方もいらっしゃるかも知れない。MySQL Serverが稼働中にいきなりデータだけをとってくるのだから、そのような疑問を持たれるのは頷ける。しかし仕組みさえ分かればスナップショットによるバックアップは怖くないということが分かるはずだ。そこで、まずはスナップショットによるバックアップの仕組みについて説明する。スナップショットを取る際の要件は次の通りである。 全てのデータを単一のボリュームに置くこと。つまり、一回のスナップショット操作でバックアップが取れることだ。 ディ

    MySQLバックアップ頂上決戦!! LVMスナップショット vs InnoDB Hot Backup
  • naoyaのはてなダイアリー - MySQL の負荷分散に LVS + keepalived を使う

    あとで書く、と言った手前なので書くとします。 DSASの中の人がすごい勢いで LVS の話を書いてくれてます。この辺。LVS を使うと Linux と箱でロードバランサが作れちゃいます。普通に買ったら数百万とかしちゃうやつ。 DSAS の中のひとに感謝しつつ、いい機会なのでやってみよう! と思っていろいろ試して昨日あたりからはてなの中でも LVS + keepalived で動かしはじめてます。いまのところ問題なし。 そのロードバランサをどこに使ってるかですが、普通ロードバランサというとインターネットからの入り口のところに置いてウェブサーバーの負荷分散に使うイメージがあります。が、今回ははてなでは MySQL のスレーブの手前に置くという役割でとりあえず使いはじめました。 +-----------+ +-----------+ | mod_perl | | mod_perl | +----

    naoyaのはてなダイアリー - MySQL の負荷分散に LVS + keepalived を使う
  • 月間57億PV、300台のサーバを運用するミツバチワークスが編み出したインフラ技術

    ミツバチワークスのエンジニアは、「月間57億PV」という巨大なトラフィックをさばくため、さまざまな技術を駆使してインフラを構築している。主と副の2立てでデータベースを運用し、300台のサーバを使いながら「負荷の限界」に挑むエンジニアに、技術ノウハウを聞く。 ミツバチワークスが運営するケータイブログサービス「DECOLOG」は、異色のサービスである。10代後半から20代前半の女性に最も人気のあるケータイブログサービスで、「デコメール」などを利用して、かわいくカラフルなブログを作成できる。広告基準を厳しくすることで女性ユーザーにも不安なく使ってもらえるような安心感を作り出し、口コミだけでじわじわとアクセス数を伸ばしてきた。 結果、2010年7月実績で月間57億PV(ページビュー)超、想定800万UU(ユニークユーザー)、会員登録者数180万件と、ケータイブログサイトでは国内最大のサービスとし

  • MySQLで INSERT時に重複する KEYが既に存在する場合の動作のオプション

    ► 2018 (1) ► 1月 (1) ► 2017 (4) ► 6月 (3) ► 5月 (1) ► 2016 (15) ► 12月 (4) ► 11月 (1) ► 10月 (2) ► 7月 (3) ► 6月 (1) ► 5月 (3) ► 1月 (1) ► 2015 (13) ► 12月 (1) ► 10月 (1) ► 9月 (1) ► 6月 (1) ► 5月 (1) ► 3月 (2) ► 2月 (3) ► 1月 (3) ► 2014 (11) ► 12月 (1) ► 9月 (2) ► 8月 (2) ► 6月 (1) ► 4月 (4) ► 2月 (1) ► 2013 (15) ► 12月 (3) ► 11月 (3) ► 8月 (2) ► 7月 (4) ► 5月 (1) ► 4月 (2) ► 2012 (7) ► 10月 (1) ► 7月 (1) ► 4月 (3) ► 1月 (2) ► 20

  • 漢(オトコ)のコンピュータ道: モダンなMySQLの開発環境の構築方法

    遅ればせながら モダンな Perl の開発環境の構築方法 モダンなPHPの開発環境の構築方法 モダンなPythonの開発環境の構築方法 モダンな Java の開発環境の構築方法 に続いてみる。MySQLは言語じゃないけど。 コンパイラ等MySQLをソースからビルドするのでなければコンパイラ等は必要ないけど、どうせアプリ開発に必要なので「MySQLなんかいつでもハックしてやるぞ!」という意気込みを示すために入れておこう。OSXならXcode、LinuxならGCC。最新のソースコードじゃないとヤダ!という粋な人にはBazaarのインストールもお勧めしたい。Bazaarは言わずと知れた分散バージョン管理システムであり、MySQL開発チームも採用している。最新のソースコードは次のコマンドでゲット可能だ。 shell> bzr branch lp:mysql-server/5.1 mysql-5.1

    漢(オトコ)のコンピュータ道: モダンなMySQLの開発環境の構築方法
  • MySQL Practice Wiki

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

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

    MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記
  • メールサーバ構築(Postfix +MySQL +Dovecot +postfixadmin) | perlとMysqlでCGI & サーバ管理 漏れ的メモ

    メールサーバ構築(Postfix +MySQL +Dovecot +postfixadmin) 2009.10.14 CentOS5.x postfix postfixadmin Dovecot, postfix, postfixadmin, メールサーバ より新しい記事 2011-01-12 https://perl.no-tubo.net/2011/01/06/メールサーバ構築のまとめ(複数のバーチャルド/ CentOS5.3 いろいろ構築した結果、メールサーバは Postfix +MySQL +Dovecot +postfixadmin で構成する事に決めた。 postfixadminを使う利点は、 複数のバーチャルドメインでの運用が可能&管理が楽 ドメインの追加やメールアドレスの追加がブラウザからGUIで出来る さらに、procmailとspamassassin、Clam Anti

    メールサーバ構築(Postfix +MySQL +Dovecot +postfixadmin) | perlとMysqlでCGI & サーバ管理 漏れ的メモ
  • UsingSQL - SPAMASSASSIN - Apache Software Foundation

    Using SQLspamd can use SQL user_prefs by calling it with the -q or -Q flags. the following configuration options will be required in local.cf to point to the correct database. These configuration options below are specific to SA 3.0. 2.63 does not use user_scores_sql_custom_query but does have other items to reference table names and such. [root@mailgw /]# cd /etc/mail/spamassassin/ [root@mailgw s

  • Postfix+PostfixAdminでメールサーバ~その3~ - satospo

    前回の作業で、PostfixAdminの再構築が完了しました。ここでは、PostfixとPostfixAdminの連携を設定していきます。 Postfixの再構築:Postfix+PostfixAdminでメールサーバ~その1~ PostfixAdminのインストール:Postfix+PostfixAdminでメールサーバ~その2~ PostfixとPostfixAdminの連携 Postfix側をPostfixAdminに合わせた設定に変更していきます。バーチャルドメインのアカウントをMySQL経由で参照できるようにします。QuotaもMySQLに保存されている情報を参照するようにします。SMTP-AUTH設定は、Dovecotインストール後に行います。 下準備 バーチャルドメイン宛てのメールを保存する場所を作成します。また、このディレクトリのオーナーとなるLinuxアカウントを作って