はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    iPhone 17

『tree-tips: 主にsolr・MySQLのtipsを掲載しています』

  • 人気
  • 新着
  • すべて
  • tree-tips: MySQLで大量レコードのjoin | MySQL

    5 users

    www.tree-tips.com

    大量レコードのjoinは遅い 遅くなるのはMySQLだけなの? そんなことはありません。MySQLもPostgresもOracleもSQLServerも遅くなります。 Oracleのオプティマイザは賢いですが、基本的に大量レコードのjoinは避けるべきです。 何故遅くなるの? データ量が多すぎてテンポラリ領域を使う(バッファに乗り気らない)から、です。 何件くらいからjoinが遅くなるの? スキーマ構造によるので一概には言えませんが、大体1000件辺りから微妙に遅くなり、1万件を超えると一気に遅くなります。 1万件程度なら割と力技(マシンパワー)で何とかなるので、1万件を超えた辺りから注意してみて下さい。 よくある例では、ログを元にしたアクセスレポートの生成時に、大量レコードのjoinが必要になり易いかもしれませんね。 解決策 データ量を減らしてからjoinする。 データ量が多いならデータ

    • テクノロジー
    • 2016/09/01 11:19
    • MySQL
    • tree-tips: MySQLの外部キーとデッドロック | MySQL

      25 users

      www.tree-tips.com

      外部キーでデッドロックを起こすサンプルコード。 drop table if exists child; create table child (id int, pid int, primary key (id, pid))engine=innodb; drop table if exists parent; create table parent (id int, count int, primary key (id))engine=innodb; insert into parent values (1, 0); alter table child add foreign key (id) references parent (id); トランザクションA ------------------------------------- begin; insert into child val

      • テクノロジー
      • 2016/07/27 21:15
      • mysql
      • トランザクション
      • 開発
      • tips
      • あとで読む
      • tree-tips: MySQLでgroup byした結果を高速にカウントする | MySQL

        5 users

        www.tree-tips.com

        MySQLでgroup byした結果をカウントする テスト用テーブル +--------------------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------------------+--------------+------+-----+---------+-------+ | pref_cd | char(2) | NO | PRI | | | | pref_name | text | YES | | NULL | | | city_cd | char(5) | NO | PRI | | | | city_name | text | YES | | NULL | | | town_street_cd

        • テクノロジー
        • 2015/12/14 18:02
        • tree-tips: MySQLのトランザクション分離レベル | MySQL

          13 users

          www.tree-tips.com

          トランザクション分離レベルの種類 ANSI/ISO SQLでは、以下のように定義されています。 ロストアップデートについては特に策定されていないと思いますが、一覧に加えておきます。 分離レベル 性能 ダーティーリード ファジーリード ファントムリード ロストアップデート read uncommitted 高 起きる。 起きる。 起きる。 起きる。 read committed | 起きない。 起きる。 起きる。 起きる。 repeatable read | 起きない。 起きない。 起きる。 起きる。 serializable 低 起きない。 起きない。 起きない。 起きない。 ただし、ANSI/ISO SQLはあくまで仕様であって、実装・動作は各データベース毎に異なります。 MySQLの場合は以下のようになります。 分離レベル 性能 ダーティーリード ファジーリード ファントムリード ロス

          • テクノロジー
          • 2015/11/01 14:19
          • mysql
          • tree-tips: kuromojiの辞書のメンテナンス | Apache Solr

            7 users

            www.tree-tips.com

            形態素解析による検索とは? 形態素・同義語の辞書のメンテナンスをする前に、形態素解析による検索について軽く解説します。 検索対象の文字列 文字列1「私はjavascriptというプログラミング言語が得意です!」 文字列2「私はjavaというプログラミング言語が大嫌いです・・・」 RDBで検索する場合 検索ワード「java」をRDBで検索すると、以下のようになります。 select * from hoge where freeword like '%java%'; 文字列1・・・ヒットする。 文字列2・・・ヒットする。 likeは中間一致検索であるため、文字列1・2共にヒットしてしまいます。 文章に対して完全一致検索をしてもほぼ検索にヒットしないので、通常中間一致検索をします。 しかしこの場合、javaを検索したいのであって、javascriptをヒットさせたくありません。 こういう状態を「

            • テクノロジー
            • 2015/10/27 00:13
            • kuromoji
            • elasticsearch
            • tree-tips: solrトップ | Apache Solr

              3 users

              www.tree-tips.com

              基礎 まずはsolrの事を知りましょう! solrを使う前に知っておくべき事 solrの利用事例 形態素解析器の種類 solrの環境設定をしましょう! solrのインストール solrの設計をしましょう! solrのフィールド設計 インデックス生成・検索のサンプルコードを書きましょう! solrjでインデックス生成・検索 solrjでランダムソートする solrの管理画面を使ってみましょう! solr adminでデータ確認 solrの辞書機能を使ってみましょう! solrの同義語の設定 solrの日本語形態素解析の設定 応用 solrで実用的なインデクサを実装しましょう! solrjで独自のインデクサを実装する solrで実用的なサーチャーを実装して色々な検索をしましょう! solrjでfacet field検索 solrjでfacet query検索 kuromojiで漢字からカタカナ

              • テクノロジー
              • 2015/10/02 17:27
              • tree-tips: solrを使う前に知っておくべき事 | Apache Solr

                6 users

                www.tree-tips.com

                solrって何? Apache solr solr wiki オープンソースのpure javaの全文検索エンジンです。 Apacheのトッププロジェクトであり、twitterやfacebook級のサイトでも使用されています。 solrにできる事は? 超高速検索のエンジンを自分で作成可能(オレオレMySQLのようなものを作る事ができる)。 検索する項目を自分で定義可能(RDBのカラム)。 定義した項目に、順序を保持したままリスト形式で値を保存可能(カラムにjavaでいうところのListを保存できる)。 完全一致検索可能。 中間一致検索可能(フルスキャンで超低速になるので非推奨)。 前方一致検索可能。 超高速に件数を取得する、ファセット検索が可能。(select count(*)を100回同時に行なっても超高速) 超高速に同義語検索可能で、同義語の辞書を自分で定義可能。(or name =

                • テクノロジー
                • 2015/10/02 17:27
                • solr
                • apache-solr
                • tree-tips: solrのReplicationHandlerで簡単レプリケーション! | Apache Solr

                  4 users

                  www.tree-tips.com

                  solrのレプリケーション レプリケーションとは、複数のサーバでデータを同期することを言います。 solrのレプリケーションには2通りの方法があります。 solr1.3までのバージョンではssh + rsyncによるレプリケーションが行えます。 solr1.4以降ではReplicationHandlerでhttp通信によるレプリケーションが可能になりました。 ReplicationHandlerはhttp通信なので、ssh+rsync形式と違ってdaemonの起動も不要でportを開ける必要もありません。 solr1.4以降ではReplicationHandlerを使う事をおすすめします。 なお、ReplicationHandlerを行うにはcommons-httpClientが必要なので、jarを追加しましょう。 レプリケーションの設定をする レプリケーションの設定はsolrconfig

                  • テクノロジー
                  • 2015/09/22 16:45
                  • solr
                  • tree-tips: elasticsearch.ymlの設定 | elasticsearch

                    9 users

                    www.tree-tips.com

                    elasticsearch version0.20.6の設定 elasticsearchの設定ファイルです。 solrで言うところのsolrconfig.xmlに当たります。 では早速 /usr/local/elasticsearch/config/elasticsearch.yml を見ていきます。 solrconfig.xmlより少ないとはいえ、それなりの量なので軽く流し見しましょう。 elasticsearch.yml ##################### ElasticSearch Configuration Example ##################### # This file contains an overview of various configuration settings, # targeted at operations staff. Appli

                    • テクノロジー
                    • 2015/09/07 14:38
                    • Elasticsearch
                    • tree-tips: solrの日本語形態素解析の設定 | Apache Solr

                      4 users

                      www.tree-tips.com

                      関連記事 solrの同義語の設定 kuromojiの辞書のメンテナンス 形態素解析器の種類 初期設定の状態で検索し、問題点を探る。 まずはanalysis画面で、形態素解析のユーザ定義辞書未設定の状態で検索してましょう。 初期設定のschema.xmlに日本語形態素解析を設定した「text_ja」があるので、typeに「text_ja」を指定します。 「宇治抹茶ケーキ」で検索したのですが、この文章にヒットしました。この結果、どう思いますか? ユーザ視点では「宇治抹茶ケーキ」を探しているのであって、分割された単語を含むページが見たい訳ではないのです。 この状態は検索の精度が低いと言えると思います。 よほど困っているユーザでない限り、必要な情報を頑張って探してくれないので、コンバージョンも下がり、売上も比例して下がるでしょう。 ユーザ定義辞書を設定する。 kuromojiの形態素解析辞書は、j

                      • テクノロジー
                      • 2015/08/21 20:46
                      • solr
                      • tree-tips: bashのmailコマンドでメールを送信 | シェルスクリプト

                        6 users

                        www.tree-tips.com

                        bashのmailコマンドでメール送信 何故mailコマンドを使うのか mailコマンドを使う理由は単純明快です。OSの標準コマンドだからです。 標準である事は非常に重要です。 プログラマであれば、普段使い慣れたjava・perl・ruby等、共通化や生産性の観点からそれらで実装したくなります。 それらで実装する事は簡単ですが、デプロイは?言語・モジュールはインストールされている?という問題があります。 必須ではないがちょっとメール送信したい、という小物的なスクリプトになりがちなメール送信ではそれらが問題になり易いです。 そんな時に頼りになるのがOS標準であるmailコマンドです。これなら安心できるので、関数化して簡単に扱えるよう実装しましょう。 mailコマンドでメール送信するサンプルコード #!/bin/sh #=====================================

                        • 学び
                        • 2015/08/20 15:04
                        • tree-tips: パスワード有りsshの自動ログイン | mac

                          7 users

                          www.tree-tips.com

                          expectコマンドで対話式パスワード認証を突破するためのスクリプト 自動ログイン用の汎用シェルスクリプトを作成 #!/bin/sh auto_ssh() { host=$1 id=$2 pass=$3 expect -c " set timeout 10 spawn ssh ${id}@${host} expect \"Are you sure you want to continue connecting (yes/no)?\" { send \"yes\n\" expect \"${id}@${host}'s password:\" send \"${pass}\n\" } \"${id}@${host}'s password:\" { send \"${pass}\n\" } interact " } 例えばこれを「auto_login.sh」というファイル名で保存しておきます。

                          • 学び
                          • 2015/08/15 16:51
                          • tree-tips: mysqldumpでロックせずオンラインバックアップする | MySQL

                            24 users

                            www.tree-tips.com

                            mysqldumpのオンラインバックアップ mysqldumpのオプション mysqldump時にロックをかけないオプションは「--single-transaction」です。 --single-transaction このオプションはサーバからデータをダンプする前にBEGIN SQLステートメントを発行します。InnoDBといったトランザクションテーブルに対してのみ便利です。なぜなら、アプリケーションをブロックせずに、BEGINが発行された当時のデータベースの状態をダンプするからです。 このオプションを使用しているときは、一定の状態でダンプされるのはInnoDBテーブルのみだということを留意してください。例えば、このオプションを使用中にダンプされたMyISAMやMEMORYテーブルは状態が変化する可能性があります。 mysqldump — データベースバックアッププログラム リファレンス

                            • テクノロジー
                            • 2015/07/29 10:59
                            • mysql
                            • mysqldump
                            • バックアップ
                            • SQL
                            • テーブル
                            • ロック
                            • tree-tips: シェルスクリプトからMySQLを実行 | MySQL

                              10 users

                              www.tree-tips.com

                              -eオプションでSQLを実行する。 mysql -uroot -e "show tables" -eオプションはトランザクションに注意。 以下はトランザクションは効いていません。 mysql -uroot -e "begin;" date mysql -uroot -e "insert into hoge values(1, 2, 3);" date mysql -uroot -e "commit;" トランザクションが効かない理由は簡単です。 mysqlコマンド毎にコネクションが切れているからです。 従って、-eオプションでトランザクションを有効にするには、以下のようにワンライナーにするしかありません。 mysql -uroot -e "begin; insert into hoge values(1, 2, 3); commit;" bashの変数をSQLに埋め込む事も可能です。以下は

                              • テクノロジー
                              • 2015/07/24 15:50
                              • mysql
                              • tree-tips: Waiting for table metadata lock | MySQL

                                7 users

                                www.tree-tips.com

                                Waiting for table metadata lockって何? 8.10.4. Metadata Locking Within Transactions 日本語ページにこの説明は無いので、頑張って翻訳してみます。 To ensure transaction serializability, the server must not permit one session to perform a data definition language (DDL) statement on a table that is used in an uncompleted transaction in another session. トランザクションの直列化を確保するため、他セッションによる処理が完了するまでの間、DDLの実行は許可しません。 As of MySQL 5.5.3, the serv

                                • テクノロジー
                                • 2015/07/20 17:44
                                • メタデータ
                                • MySQL
                                • ロック

                                このページはまだ
                                ブックマークされていません

                                このページを最初にブックマークしてみませんか?

                                『tree-tips: 主にsolr・MySQLのtipsを掲載しています』の新着エントリーを見る

                                キーボードショートカット一覧

                                j次のブックマーク

                                k前のブックマーク

                                lあとで読む

                                eコメント一覧を開く

                                oページを開く

                                はてなブックマーク

                                • 総合
                                • 一般
                                • 世の中
                                • 政治と経済
                                • 暮らし
                                • 学び
                                • テクノロジー
                                • エンタメ
                                • アニメとゲーム
                                • おもしろ
                                • アプリ・拡張機能
                                • 開発ブログ
                                • ヘルプ
                                • お問い合わせ
                                • ガイドライン
                                • 利用規約
                                • プライバシーポリシー
                                • 利用者情報の外部送信について
                                • ガイドライン
                                • 利用規約
                                • プライバシーポリシー
                                • 利用者情報の外部送信について

                                公式Twitter

                                • 公式アカウント
                                • ホットエントリー

                                はてなのサービス

                                • はてなブログ
                                • はてなブログPro
                                • 人力検索はてな
                                • はてなブログ タグ
                                • はてなニュース
                                • ソレドコ
                                • App Storeからダウンロード
                                • Google Playで手に入れよう
                                Copyright © 2005-2025 Hatena. All Rights Reserved.
                                設定を変更しましたx