タグ

innodbとInnoDBに関するk-holyのブックマーク (10)

  • プロダクトに日本語の全文検索機能を加えたい、検索インデックスのリアルタイム更新もほしい というときの手軽な方法 - Qiita

    プロダクトに日語の全文検索機能を加えたい、検索インデックスのリアルタイム更新もほしい というときの手軽な方法MySQL検索InnoDB全文検索mysql5.7 プロダクトオーナー や ユーザからの要望によって 検索機能 の必要性に迫られたとき、 ありふれた方法 でかつ 速攻 で実装する方法です 要件 日語文章 などのデータに対して、全文検索できる 検索リクエストに対して、十分高速にレスポンスを返す 検索インデックスはリアルタイム更新され、実データと相違がでない 検索対象のデータが追加/更新/削除されたら検索結果にも即反映される 希望 できるだけ速く実装/提供したい できるだけ運用コストも小さくしたい おすすめな方法 もしもプロダクトがMySQL互換のデータベースを使っていたら、要件を満たして 明日にも提供できる かもしれません(気持ちです、フロント周りの実装など事情によって当然コストが

    プロダクトに日本語の全文検索機能を加えたい、検索インデックスのリアルタイム更新もほしい というときの手軽な方法 - Qiita
    k-holy
    k-holy 2019/11/05
    既存テーブルに全文検索インデックス追加、または検索用テーブルを追加してトリガーで更新。正規化処理は必須となると検索用テーブルを用意すべきか。
  • MySQL5.7 InnoDB のN-gram全文検索を検証&サービス導入した

    ※ この記事は以前Mediumで公開した記事 の転載です MySQL5.7・InnoDB・N-gram という環境下で全文検索の挙動やパフォーマンスについて検証を行った。FULLTEXT INDEXは以前はMyISAMでしか利用できなかったが、 5.6.4からInnoDBでのサポートが始まっていた。 InnoDBの全文検索は5.7、特に5.7.6以降でいわゆるCJK(中国語・日語・韓国語)がN-gramで標準サポートされ始め、 CREATE TABLE文で簡単にパーサーを指定できる構文のサポート、 設定やクエリの組立で考えないといけない事が減った事で導入障壁がかなり下がっている。 ※4.1と5.0でサービス導入経験がある私の個人的な比較感想です。 FULLTEXT INDEXも他のINDEXと同様にデータ更新・削除の際にINDEXのrebuildが走るので更新時の負荷には注意が必要で、F

    k-holy
    k-holy 2019/11/05
    "「他INDEXが付与されたカラム」による絞込の方が効率的であってもそのINDEXは無視されて、FULLTEXT INDEXによる検索が実行される"
  • まだ日本語全文検索で消耗してるの? - Qiita

    この記事は InnoDB のフルテキストインデックスで日語 NGRAM の続きです。 以降↑の記事を「前回の記事」と呼称します。 例によって実験しつつ記述しています。整合性や内容の保証はできません。 検証に使ったのは CentOS 7, mysql 5.7.9 です。 前回の記事は何をしているのか 端的に言えば下記です。 文字列を ngram 化するファンクションを定義 全文検索したい複数カラムを結合して ngram 化した文字列を格納するカラムを定義 トリガーで↑のカラムに ngram 化した文字列を放り込む ↑↑のカラムに対して FULLTEXT INDEX を張る 検索時に ↑↑↑のカラムに対して MATCH AGAINST 検索を行うことで全文検索 とまぁ色々めんどいことをしています。 特に筋ではないトリガーとファンクションの定義が嫌。 mysql 5.7.9 には・・・ とこ

    まだ日本語全文検索で消耗してるの? - Qiita
    k-holy
    k-holy 2019/11/05
    InnoDBでFULLEEXTインデックスの全文検索
  • いつどのようにInnoDBを共通テーブルスペースから移動するか | Yakst

    InnoDBで共通テーブルスペースにデータを格納した場合にデータファイルが肥大化する問題の解決手段について実例を交えて紹介する。 August 22, 2014 by Fernando Laudares 先の投稿「MySQLのibdata1ディスクスペースの問題と大きなテーブルについて詳しくみる」で、 共通テーブルスペースと呼ばれるところに属する大きなテーブルを持つという観点から、ibdata1の肥大化問題についてみた。 先の投稿をする動機となった特定のケースでは、サーバー上のディスクスペースが枯渇し、ibdata1ファイルを縮小する方法を探している顧客がいた。 ご存じの通り、そのファイル(または、共有テーブルスペースを構成するibdataファイル一式)は、 innodb_file_per_tableが無効になっているとき全てのInnoDBのテーブルのデータを格納するだけでなく、 UNDO

  • MySQLでMyISAMからInnoDBに乗り換える際に知らないとハマる、怖い話 - Y-Ken Studio

    photo by byte MySQLといえば、巷ではInnoDBばかり注目され、MyISAMの地下アイドル化がにわかに語られる今日この頃、皆様いかがお過ごしでしょうか。 まあカジュアルにストレージエンジンを変換するだけで済むなら、簡単なのです。 -- legacy_my_tableをInnoDBストレージエンジンに変換する ALTER TABLE legacy_my_table ENGINE=InnoDB; よし終わった!さあランチタイムだ! ・・・と片付けてしてしまうと、悲劇が起こるかもしれません。(>o<;) それでは日、MyISAMからInnoDBへ移行するなら知っておきたい意外な落とし穴とTipsを紹介します。 AUTO INCREMENTの挙動が違う落とし穴 以下に該当するクエリを利用している場合には、注意が必要です。私はハマりました。 INSERT IGNORE INTO

    MySQLでMyISAMからInnoDBに乗り換える際に知らないとハマる、怖い話 - Y-Ken Studio
  • MyISAMからInnoDBへ切り替えるときの注意点

    MySQLを使い始めて間もない人がよく陥る罠の中に、気づくと使ってるストレージエンジンがMyISAMだった!ということがある。デフォルトのストレージエンジンはMyISAMなので、MySQLに詳しくない人たちが比較的陥りやすい罠なのだ。そもそもストレージエンジンという概念自体がMySQL独自のものなので仕方のない話である。MyISAMは素晴らしいストレージエンジン(たとえばこのYahoo!の中の人による投稿で言われているように)であるが、長所もあれば短所もある。例えば、 トランザクション対応ではない。 クラッシュセーフではない。 更新と参照が入り乱れた場合の同時実行性能がよくない。 テーブルが大きく(数億行とか)なるとINSERTの性能が劣化する。 などなど。特に前者の2つが問題で、アトミックな操作が必要なところでロジックを実装出来なかったり、サーバがクラッシュした時にデータがお亡くなりにな

    MyISAMからInnoDBへ切り替えるときの注意点
    k-holy
    k-holy 2016/12/01
    ホスティングサービスに移植する時にやっちまった…気付いたらMyISAMに…ALTER文とか華麗にスルーしてくれるから困るわ
  • クラウド時代の新常識はこれだ!「MySQL クラウド向け InnoDB チューニング」|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

    クラウド時代の新常識はこれだ!「MySQL クラウド向け InnoDB チューニング」 こんにちは。インフラエンジニアの nobuh です。 株式会社インサイトテクノロジー様主催の db tech showcase sapporo 2015  が 9月10日、11日の2日間にわたって開催されました 。 今回、弊社も発表する機会を頂きましたので、インフラエンジニアとして日々 MySQL と格闘して培ったノウハウについてお話させて頂きました。その発表で使ったスライドがこちらです。 クラウド上の仮想サーバーを使って MySQL の管理やチューニングに日々邁進されている方々にご覧いただけると幸いです。 今までにも MySQL に関していくつか記事を掲載していますので、この機会に是非ご覧ください! → OSC2015北海道で「これだけみれば大丈夫ーCactiによるMySQLパフォーマンス監視のツボ」

    クラウド時代の新常識はこれだ!「MySQL クラウド向け InnoDB チューニング」|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
  • MySQLのロックについて - SH2の日記

    JPOUG> SET EVENTS 20140907 | Japan Oracle User Group (JPOUG)に参加して発表をしてきました。IIJさまのセミナルームは窓からの眺めがすばらしいですね。JPOUGの運営メンバのみなさま、会場を提供してくださったIIJのみなさま、当日お越しいただいたみなさま、どうもありがとうございました。 私のセッションでは「MySQLのロックについて」と題してネクストキーロックなどの説明をしました。プレゼンテーション資料と、調査のために作成したツールを公開します。 プレゼンテーション資料 (PDF) Lock Inspector 1.0 プレゼンテーション資料からリンクしているウェブサイトの一覧です。 MySQL Lists: mysql: Re: InnoDB's inner workings + checkpoints 過去記事の訂正 @kami

    MySQLのロックについて - SH2の日記
  • QA@IT サービス終了のお知らせ - @IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    QA@IT サービス終了のお知らせ - @IT
  • MySQL InnoDBのネクストキーロック おさらい - SH2の日記

    MySQLのInnoDBストレージエンジンは行ロックをサポートしています。しかしOracleと同じ感覚でアプリケーションを作っていると、思わぬところでデッドロックに出くわすことがあります。これはInnoDBのロック範囲がOracleよりも微妙に広いためです。 実際の例で確認してみましょう。 mysql> select * from t; +----+------+ | c1 | c2 | +----+------+ | 10 | a | | 15 | a | | 20 | a | | 25 | a | | 30 | a | | 35 | a | | 40 | a | | 45 | a | | 50 | a | +----+------+c1列は主キーになっています。1つめのセッションで以下のSQLを実行します。 mysql> set tx_isolation = 'repeatable-r

    MySQL InnoDBのネクストキーロック おさらい - SH2の日記
    k-holy
    k-holy 2012/01/17
    InnoDBのネクストキーロック
  • 1