タグ

mysqlに関するyu3ho7のブックマーク (67)

  • InnoDBのファイルサイズ管理

    最近、InnoDBのデータ領域(テーブルスペース)が成長してしまって元に戻すことが出来ない場合の対処についてよく質問されるので、今日はテーブルスペースが成長することへの対策について説明しよう。(ここのところMySQLネタが続いているが、Planet MySQL語版を意識しているわけではないのであしからず!!<<ホントかよ?!>俺) InnoDBのテーブルスペースが成長してしまうのは、ズバリ自動拡張しているからである。テーブルスペースに対して何もオプションを指定しないと、デフォルトでは次のような設定と同じテーブルスペースが作成される。 [mysqld] innodb_data_file_path=ibdata1:10M:autoextend サイズは10MBしかないが、自動拡張するのである。自動拡張してしまうと何が問題なのかというと、データが増えた場合にファイルシステムの空き領域を使い切

    InnoDBのファイルサイズ管理
    yu3ho7
    yu3ho7 2013/05/16
    innodb_data_file_pathでテーブル毎にテーブルスペースを保存する方法
  • 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.6のちょっとした話 - まめ畑

    最近、とあるサービスの番環境にMySQL5.6を導入していっています。社内だけの環境も含めて5システムに導入しました。 5.5からのアップデートや最初から5.6というものもあります。 今回、導入で変わった点いろいろありますが、メモ程度にまとめておきます。 間違いなどありましたら指摘していただけるとありがたいです。 Replicationエラー時 今までは、replicationのエラーが起こった場合は SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; とかでダメなクエリを確認しつつSKIP出来ればしていましたが、5.6でGTIDモードONの場合、これが使えなくなりました。 GTID便利なんですが、この点少し不便です。 以下のように直します。 まず、slaveでmaster server UUIDと最新のGTID、Retrieved_Gtid_Setを確認します

    MySQL5.6のちょっとした話 - まめ畑
  • MySQLでNOT INの代わりにNOT EXISTSを使うと速い

    ちょっとした情報を取り出す時のクエリが30秒ほどかかったので、何とか改善できないものかと試行錯誤してみました。 2つのテーブルがあって、仮に ■顧客情報 t_client_info ( client_id, name, address) ■顧客履歴 t_client_history (id, client_id, visit_date) とでもしましょう。 visit_dateはdate型ではなくてint型でYYYYMMDDの形式とします。 あとは見たまんまなのでテーブルの説明は省略ます。 2010年の元旦から1年以内に来店した顧客の住所と最終来店日を取得するというクエリです。 1年のうちに1回しか来なかった人は省くことにします。 SELECT i.client_id, name, address, MAX(visit_date) as vdate FROM t_client_info A

  • 【MySQL】パーティションでテーブル分割して大量データ等の検索速度改善 - 【鋭利団体】PK-Brothers

    今回はMySQLのテーブル分割機能である、パーティショニングについて実際にやってみたので紹介します。 MySQLの5.1ぐらいからパーティショニングが使えるようなったらしいです。 パーティションを区切ると、対象のカラムのデータで物理的にテーブルを分割する事と同等の効果を発揮します。 これで、大量データも気軽に扱えるようになりそうです。 早速操作ログと共に説明したいと思います。 まず第一条件としては、 対象カラムがプライマリーキーとなっていることが必要です。 例えば、期間で分ける場合は、 date/datetimeカラムをプライマリーキーに設定する必要がありそうです。 また、フラグ等で分ける場合は、 そのフラグをプライマリーキーに含める必要がありそうです。 今回はフラグでパーティションを区切る方法を試してみました。 (期間で分けるタイプは結構WEBに転がっていたので…) まず対象のテーブルを

    【MySQL】パーティションでテーブル分割して大量データ等の検索速度改善 - 【鋭利団体】PK-Brothers
    yu3ho7
    yu3ho7 2012/12/16
    パーティッション分割
  • layer8.sh

    This domain may be for sale!

  • MySQL演算子・関数

    MySQLの演算子や関数について説明します。 なお、個人的に必要無いと思うものについては省略しています(笑)。 MySQL5.0.16対応 最初に MySQLでは、数値⇔文字列の変換は自動的に行われます。 SELECT 100 + '200' -> 300 SELECT 100 < '200' -> 1 (TRUE) SELECT 100 < '22' -> 0 (FALSE) 比較演算子 比較演算の結果は、1(TRUE) / 0(FALSE) / NULL のいずれかになります。 例を挙げます。 SELECT 1 = 1 -> 1 SELECT 1 = 3 -> 0 SELECT 1 = NULL -> NULL SELECT NULL = NULL -> NULL 最後の結果に注意して下さい。 どのデータベースにも共通して言えることですが、NULLという値は 特別な意味を持ちます。 N

  • MySQL で全文検索 ひらがな、カタカナ(半角・全角)気にせず検索しよう - mcfishの開発日記

    mysql で検索するときに、 select * from table where column like '%word%'; なんてしたいことありますよね。 さらに、 select * from table where (column like '%word%' or column2 like '%word%') AND (column like '%word%' or column2 like '%word%'); なんてことになったり・・ それに半角カナ、全角カナとかなると、 あーーーーーもう!!めんどくせーーーー!!!! ってなると思います。(僕はなりました) そこでいろいろググりまくっていると、 MySQLで全文検索 ってのを見つけて、そこのキーワードを参考にいろいろ検索してると、 collate utf8_unicode_ci こんなのにたどり着きました。 何かというと、UTF

  • MySQLのEXPLAINを徹底解説!!

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

    MySQLのEXPLAINを徹底解説!!
  • MySQL :: MySQL 4.1 リファレンスマニュアル :: 2.5.7 別のアーキーテクチャへの移行

    MySQL バージョン 3.23 を使用している場合、同じ浮動小数点形式をサポートする異なるアーキーテクチャ間で、MyISAM テーブルの .frm、.MYI、および .MYD の各ファイルをコピーできます(MySQL はバイトスワップの問題を処理します)。 See 項7.1. 「MyISAM テーブル」。 MySQL ISAM データファイルおよびインデックスファイル(それぞれ、.ISD および *.ISM)は、アーキーテクチャ依存であり、場合によっては OS にも依存します。現在のマシンとは異なるアーキーテクチャまたは OS を持つ別のマシンにアプリケーションを移動したい場合、そのマシンにファイルを単純にコピーするだけでは、データベースを移動することはできません。代わりに、mysqldump を使用してください。 mysqldump は、デフォルトで SQL ステートメントが格納された

  • 複数の MySQL を同時に起動する | バシャログ。

    早くも 4 月!こんにちは、nakamura です。去年のエイプリルフールは sakai が こんな記事 を上げていましたが、僕はまじめなので普通に書きます。 各コンテンツの番環境と出来る限り同じ状態の開発環境が欲しい!というのは誰しもが思う事ですが、中々そうもいかないのが世の中の世知辛い所ですね。今日は少しでもそんなストレスを解消する手段として異なるバージョンの MySQL を一台のサーバに共存させる方法をご紹介します。 ソースコードの取得、展開 ディストリビューションのパッケージ管理システムではなく、ソースコードから手動でコンパイル、インストールを行います。 公式のダウンロードサイトはこちら → MySQL :: MySQL Product Archives ただし、MySQL 4.x 系はサポートが終了した事もあり公式サイトからのダウンロードが出来ません。古いバージョンをインストー

    複数の MySQL を同時に起動する | バシャログ。
  • リレーショナル・データベースの世界

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • http://www.mysqlpracticewiki.com/index.php/My.cnf%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB

  • nodeJSでつかえるMySQL ORMのSequelizeを触ってみる

    SequelizeはnodeJSで使えるORM npm install sequelizeでサラッとインストールできます.MySQL体さえ入っていれば,すぐに使えます. 初期化 Sequelize自体は,requireして,必要な情報を与えてnewすれば簡単に初期化できます. var Sequelize = require('sequelize').Sequelize; var Seq = new Sequelize('データベース名', 'ユーザー', 'パスワード'); /* hostとかportを指定するときはこう var Seq = new Sequelize('データベース名', 'ユーザー', 'パスワード', { 'localhost', 3306 }); */ モデルをつくる 最低限のモデルの定義.ここではUserモデルに対して,文字列型のユーザー名を定義しました. va

    nodeJSでつかえるMySQL ORMのSequelizeを触ってみる
  • MySQL レプリケーションの設定 - maruko2 Note.

    MySQL レプリケーションの設定 提供:maruko2 Note. 移動: 案内, 検索 目次 1 MySQL レプリケーションの特徴 2 MySQL レプリケーションの動作概要 3 レプリケーションのセットアップ 3.1 レプリケーション用の my.cnf 設定 3.2 マスターにレプリケーション専用のユーザーを登録する 3.3 マスターサーバのスナップショットを作成する 3.4 マスターサーバのスナップショットを元に、スレーブを作成する 4 レプリケーションが正常に行われているか確認する方法 5 マスターのバイナリログの削除 6 参考ページ 7 MySQL 関連のページ MySQL レプリケーションの特徴 MySQL のレプリケーションは非同期。 1つのマスターに対して、1つ以上のスレーブが可能。 更新系のクエリはマスターのみで実行しなければならい。更新系クエリをスレーブで実行すると

  • データベースサーバー構築(MySQL) - CentOSで自宅サーバー構築

    [root@centos ~]# vi /etc/my.cnf ← MySQL設定ファイル編集 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 character-set-server = utf8 ← 追加(MySQLサーバーの文字コードをUTF-8にする) [root@centos ~]# /etc/rc.d/init.d/mysqld start ← MySQL起動 MySQL データベースを初期化中: Installing MySQL system tables... OK Filling he

  • レプリケーションを使う - Unlimited Island

    レプリケーションとは、あるデータベースから他のデータベースに複製を作ることです。 これは通常、以下のような理由から使われます。 サーバがダウンしたときの対処 複数のデータベースが同じ内容を持つことで、一つのサーバがダウンしても 他のサーバを使うことが可能になります。 負荷分散 複数のデータベースを交互にアクセスすることで、一つのサーバに掛かる負担を減らすことが出来ます。 MySQLでは「一方向レプリケーション」を採用しています。 一つのサーバを「マスタ」として機能させ、残りのサーバが「スレーブ」になります。 データの複製は「マスタ→スレーブ」という方向でのみ行われます。 そのため、データの更新は必ずマスタサーバで実行する必要があります。 マスタサーバで更新を行うと、その更新内容が全てのスレーブサーバに通知され スレーブサーバはマスタサーバと同じ更新処理を行います。これにより、マスタとスレー

  • SQL講座 INNER JOINを使った表の結合

    「1日1問」仕事や勉強に役立つIT知識を充電! リクルートが運営する「ITキャパチャージ」は、最初に会員登録が必要ですが、無料で仕事から情報処理技術者試験まで幅広く活用できるWebサイトです。IT担当者のスキルアップに役立つ情報処理に関する問題を、毎日1問ずつ、メールやサイト上で提供するサービスです。解答ページはIT初心者でも分かる丁寧な解説つきで、サイト上では過去の問題にも挑戦できます。 また、IT用語が調べられるIT単語帳は、説明も詳しく簡単に調べられ、たいへん便利です。ぜひ、会員登録して活用したいサイトです。 INNER JOINを使って表を結合する SELECT文において複数の表を結合するときはWHERE句で結合条件を指定するほかにFROM句でINNER JOINを指定して表を結合することもできる。 INNER JOINの記述形式 SELECT 列名1,列名2,~列名n ← どの列

  • 認証がかかっています

    こちらのブログには認証がかかっています。 ユーザー名 パスワード Powered by Seesaa

  • dfltweb1.onamae.com – このドメインはお名前.comで取得されています。

    このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2023年10月時点の調査。