タグ

dbとmysqlに関するpaselaのブックマーク (21)

  • kamipo traditional (というかSTRICT_ALL_TABLES) では防げないMyISAMという名の化け物

    kamipo traditional (というかSTRICT_ALL_TABLES) では防げないMyISAMという名の化け物 TL;DR kamipo traditionalですら完全に防ぎきれないアレがあるので、そこを気にするなら出来る限りさっさとMyISAMからInnoDBに引っ越しましょう。 これらの記事を読んだ人向けです。 ルーク!MySQLではkamipo TRADITIONALを使え! | おそらくはそれさえも平凡な日々 Javaでkamipo traditionalを有効にする - その手の平は尻もつかめるさ アプリでミスって不正なデータが入るくらいだった500になったほうがマシ。というのが個人的な考えです。 +激しく同意+ さて、激しく同意したところで、kamipo traditionalでは倒せないMyISAMという名の化け物の話をしたいと思います。 kamipo tr

  • ルーク!MySQLではkamipo TRADITIONALを使え! | おそらくはそれさえも平凡な日々

    よくMySQLはゆるふわだから 値が勝手に切り詰められる エラーが起きずに変な値/日付が入る 不正なスキーマが入ってしまう など言われることがあります。ただそれは、そもそもの設定が悪いのです。(確かに昔デフォルトがゆるふわなのはいけなかったんですが) ということで、データベースには不正な値が入らないように設定はとにかく厳しくしておくのがオススメです。 じゃあどうするか。 MySQLSQL Modeによって、その辺りの制約をコントロールすることができます。以前、MySQLsql-modeで一番厳しいやつはTRADITIONAL、というのを書いたのですが、実はそれだけでは不十分で、TRADITIONAL,NO_AUTO_VALUE_ON_ZERO,ONLY_FULL_GROUP_BYとするのがより安心なようです。 これはkamipoさんに教えてもらいました。 @songmu TRADITI

    ルーク!MySQLではkamipo TRADITIONALを使え! | おそらくはそれさえも平凡な日々
  • MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記

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

    MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記
  • MySQLに纏わる10の都市伝説

    誰の口から飛び出したのかは定かではないが、巷ではMySQLにまつわる様々な「都市伝説」がまことしやかに囁かれているようだ。恐らくMySQLに対する理解が低い人や、MySQLがあまり好きではない面々によってFUDっぽく言われているのだと思うが、世の中にはそのような「都市伝説」を真に受けてしまう人が居るのもまた事実であである。MySQLにおける昨今の開発スピードには目覚ましいものがあり、MySQLは性能・安定性・使い易さ共に進化し続けている。(特に先日リリースされたMySQL 5.5は性能・安定性・使い易さを両立している優れたバージョンだ!!)しかし「都市伝説」で語られることは総じて「MySQLはダメな子ちゃん」であるという烙印を押すものばかりであり、MySQLerとしてはそのような言われ無き汚名を全身全霊をもって晴らさなければならない使命を背負っている。そこで、今日はMySQLについて語られ

    MySQLに纏わる10の都市伝説
  • SQL_CALC_FOUND_ROWS を毎回忘れるのでメモっておく件 - 日向夏特殊応援部隊

    LIMIT 〜 OFFSET なんか使う SELECT 文をページ送りとかしたい場合、全体の件数が必要だったりして、 SELECT * FROM people LIMIT 50 OFFSET 0; SELECT COUNT(guid) FROM people; みたいな感じの事やりたい訳だけど MySQL の場合だと、そういう枠組みがあるんですよね。 MySQL :: MySQL 5.1 リファレンスマニュアル :: 11.10.3 情報関数 - FOUND_ROWS() さっきのクエリはこんな風になる、 SELECT SQL_CALC_FOUND_ROWS * FROM people; SELECT FOUND_ROWS(); これ、使いたいなと思った時に毎回忘れてググってたので備忘録として書いた。

    SQL_CALC_FOUND_ROWS を毎回忘れるのでメモっておく件 - 日向夏特殊応援部隊
  • (特にMyISAMを使っていた)ウェブ屋さんがInnoDBを使う場合の設定項目 - kazuhoのメモ置き場

    InnoDBはMyISAMと比較して安全(OSクラッシュや電源断が発生してもテーブルが壊れない)分、書き込みが遅い。データベース屋さんからすると、それは当然のことでMyISAMがおかしいんだ、ということになり、だからバッテリバックアップ機能のついたRAIDカードを使うんだ、という話になる。でも、MyISAMを使っているウェブ屋さんの現場では、場合によって多少データが消えてもかまわないから、安いハードウェアで大量のアクセスを捌きたい... って乖離があるんじゃないかなーと思ってる。 そのような場合には、my.cnf の innodb_flush_log_at_trx_commit パラメータを調整することで、MyISAMに比肩する書き込み速度を得ることができる(そのかわり、クラッシュや電源断の場合は、設定によって直近1秒以内の変更が失われる)。 他のパラメータも含めて書いておくと、データベー

    (特にMyISAMを使っていた)ウェブ屋さんがInnoDBを使う場合の設定項目 - kazuhoのメモ置き場
  • レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン - (ひ)メモ

    MySQLで、レプリケーションベースのHAな構成について考えたメモです。 3台(というか2台+1台)がいいかなぁと思っていて、前半はその理由を、後半では{マスタ,スレーブ}が{再起不能になった,ちょっとダウンしてすぐ復帰した}場合のリカバリプランについて書きます。 今のところはこれがベストかなと思っているのですが、「こうしたほうがいいと思う!」「ここがおかしい!」などなどのご意見はコメント、TBなどでいただけるとうれしいです。 ゴール マスタが落ちてもぐーすか寝ていられるようにしたい リカバリの作業はできるだけ単純に、かつ、短時間で完了するようにしたい めんどくさいのはいや 基構成、方針 2台+1台 サービスで使うのは2台 (db1, db2) もう1台は管理用 (db3) スレーブを多数並べる構成にはしない 台数増えると管理コストが上がる マスタダウン時のフェイルオーバとそのフェイルバ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン - (ひ)メモ
  • MySQLで全文検索 - FULLTEXTインデックスの基礎知識|blog|たたみラボ

    tatamilab.jp

  • Open Source Database (RDBMS) for the Enterprise | MariaDB

    MARIADB ENTERPRISE SERVER FREEDOM TO GO ANYWHERE A reliable, cloud-native database that doesn’t force choices. Run where you want, how you want, at a fraction of the cost of proprietary databases. Learn What’s New

    Open Source Database (RDBMS) for the Enterprise | MariaDB
  • MySQL、MyISAMとInnoDBを選ぶ方法 | エンタープライズ | マイコミジャーナル

    SitePoint: New Articles, Fresh Thinking for Web Developers and Designers MySQLはほかの多くのデータベースと違って複数のテーブルタイプを提供しており、用途に応じてテーブルタイプを使い分けることができるようになっている。デフォルトのテーブルタイプはMyISAMだが、ほかにもInnoDBを選択することもできる。SitePointに次の2つの記事が掲載されており、どちらを選択すべきかが簡潔にまとまっている。 MySQL: the Pros and Cons of MyISAM Tables MySQL: the Pros and Cons of InnoDB Tables 内容を要約すると次のようになる。 MyISAMの特徴と問題点 特徴: デフォルトのテーブルタイプ 特徴: シンプル 特徴: 高速に動作 特徴: フルテ

  • 簡単なベンチマーク

    (Last Updated On: 2018年8月13日)最近のPostgreSQL, MySQL, SQLiteのパフォーマンスはどうかな?と言うことで非常に簡単なベンチマークをしてみました。 デフォルト状態のデータベースに郵便番号データ(12万件とちょっと)をINSERTしてみました。フラグを除く全てのフィールドをテキスト型として定義し、全てのフィールドを挿入しました。旧番号と現行番号にインデックスを付けています。スクリプトはPHPで記述し、DBが動作しているPC上からPHP 5.2.4で実行しました。1レコードが分割されている場合などは無視して挿入しているので12万2000レコードになりました。 PC CPU: PentiumD 2.8GHz Memory: 3GB HDD: PATA DBMS MySQL: 5.0.45 PostgreSQL: 8.2.4 SQLite: 3.4.

    簡単なベンチマーク
  • mixiの生みの親“バタラ氏”が語るMySQLの意外な利用法 - TechTargetジャパン

    日記だけで4億件のデータ ミクシィが運営するSNS「mixi」は、2007年7月末段階でユーザー数が1110万人。人が12人集まれば、1人はmixiユーザーというわけだ。ユーザーのアクティブ率(ログイン間隔が3日以内)は約62%と高く、2007年4月から6月の月間平均ページビューは117.5億に達した。日記だけでも4億件以上に上るなど、蓄積するデータ量も莫大。2004年3月のサービス開始から、わずか3年半で現在の巨大コミュニティーへと発展したのだ。 ミクシィは、「LAMP(OSのLinux、WebサーバのApache、DBMSのMySQL、開発言語のPerlPHPPython)」と呼ばれるWebシステム向けの標準的なオープンソースソフトウェア(以下、OSS)でシステムを自社開発し、安価なPCサーバを1000台以上連ねる超分散構成でmixiのサービスを支えている(広告配信など周辺機能では

    mixiの生みの親“バタラ氏”が語るMySQLの意外な利用法 - TechTargetジャパン
  • ウノウラボ Unoh Labs: MySQL オペミスでデータが破損してしまった場合の復旧方法

    こんにちは satoです。 オペミスで update に where句を付け忘れたり、プログラムのバグでデータが破損してしまったりした場合でも、バイナリログには更新SQLがすべて書き込まれるので、バックアップデータからオペミスが起こるまでの全てのSQLを流し込めれば、元の状態に戻すことは可能です。 •バイナリログを取っている •オンラインバックアップをとっている(mysqldumpMySQLを止めた状態でのcpによるバックアップとバイナリログ) •バックアップ時点でのバイナリログの書き込み位置を保存している 以上のような状態でデータが壊れた時の復旧手順をまとめてみました。シナリオとして •ある1カラム email をupdateしようとしたら、間違ってwhere 句を付け忘れ 全レコードをupdateしてしまった •気がついたのが半日後 というオペミスが発生したとします 1) データベー

  • [ThinkIT] 第4回:レプリケーションの比較 (1/4)

    今回はレプリケーションを取り上げます。まずレプリケーションとはどのようなものかを解説し、次にPostgreSQLMySQLそれぞれが持つレプリケーションの基構造を解説します。 RDBMSでいうプリケーションとは、ある1つのデータベースをまったく同じ内容で複製し、複製したデータベース(レプリカ)をネットワーク上に複数配置する機能です。レプリケーションにて作成した複製のデータベースは、様々な目的に活用できます。次にその使用例を紹介します。 目的の1つには、バックアップデータとしての活用があります。テープ装置などの外部記憶装置にバックアップデータを作成するかわりに、他のサーバ上のディスク内にデータベースを複製し、それをバックアップデータとします。 障害発生時には、バックアップデータとして作成した複製データベースを番データベースとして使用し、障害復旧のための時間を短縮する効果があります。 そ

  • 「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
  • [PHPプロ!] MySQLのクエリを最適化する10のTips:CodeZine

    Jaslabs: High performance phpMySQL のクエリを最適化するための10のTipsが公開されています。explainを利用した一般的な方法から、SELECT・INSERTのクエリオプションを使用するような方法まで紹介されています。MySQLクエリの速度低下にお悩みの方は一度読んでみるとよいでしょう。 1. explainコマンドの使用 explainコマンドはクエリでどのインデックスが指定されているのか、などの情報が取得できます。 explainコマンドの実行結果を見ながらインデックスが使用されるようにクエリを修正したり、インデックスの追加を行います。詳細についてはMySQL 4.1リファレンスマニュアルを参照してください。 2. 権限の簡易化 テーブルの権限が複雑になればなるほど、オーバーヘッドが大きくなります。GRANT文で設定された権限が単純であ

  • MySQLの基礎を学ぼう [準備編](1/3) ― @IT

    連載第3回目では、PHPのサンプルコードを実際に見ながらフォームデータの受け渡しやファイル操作について解説しました。 今回は、連載の主役「MySQL」の登場です! 次回以降のサンプル開発で必要となるMySQLの基礎知識とその下準備について解説します。基礎の習得と下準備をしっかり行い、次回以降で格的に着手する「簡易オンラインストア」の開発に備えましょう。 MySQLの導入と動作確認 ここでは、MySQLによるデータの参照や登録方法について解説する前に、MySQLの基礎知識と操作方法を中心に解説します。 MySQLのインストールについては、連載第1回目を参考にしてください。正常にインストールが完了していれば、MySQLの各コマンドが使用できます。それでは、動作確認として以下のコマンドを入力してみましょう。 $ mysqlshow -u root +--------------------+

    MySQLの基礎を学ぼう [準備編](1/3) ― @IT
  • KLab

    ご指定のページが見つかりませんでした URLの変更、もしくはページが削除された可能性があります。 お手数ですが、以下のリンクから目的のページをお探しください。

    KLab
  • Top 84 MySQL Performance Tips | Debian Admin

    MySQL is a widely used and fast SQL database server. It is a client/server implementation that consists of a server daemon (mysqld) and many different client programs/libraries. You can check the same tips from here.Here is very useful tips for all mysql DBA’s,Developers these tips are noted from MySQL Camp 2006 suggested by mysql community experts. Kaj (Most Excellent Obvious Facilitator) Index s

  • mysql を高速化したいときに読むメモ (TechKnowledge)

    給料の振込口座として三井住友銀行に口座を持っています。自動支払いサービスを使用して光熱費等の公共料金の支払いをしていますが、先日それらの内の一つを失念してたことに気づきました。口座を確認した時にはすでに引き落としが完了していたため、手元の資金が心細くなった状態で数日を過ごさなければなりません。三井住友銀行で即日キャッシングが可能であれば、是非利用したいのですが。 運が良ければ、三井住友銀行の即日キャッシングは可能 三井住友銀行の特徴はまずクレジットカード会社との連携したサービスが魅力的なことがあげられます。キャッシングでは銀行カードローンですから、何より安い金利が大きい利点になります。概ね銀行系の審査に必要な時間は長くなるようですが、三井住友銀行ではカード発行が当日に行なってくれます。 三井住友銀行は即日キャッシングができるかと言うと微妙なことになります。申込から審査結果の連絡までは、土日