タグ

MySQLに関するWorldWorldWorldのブックマーク (14)

  • LIKE検索は使ったらダメな場合もある - 全文検索について - SQLer 生島勘富 のブログ

    SQLのLIKE検索は非常に便利です。しかし、データ量によっては使ってはいけません。 例えば、 WHERE 備考 LIKE '%大阪%' とすれば備考欄に'大阪'が含まれているレコードをすべて取得することが可能ですが、当然、インデックスは使えません。必ずテーブルをフルスキャンすることになります。 そもそも、LIKE検索をするような項目はデータ量が多く、数百Byteから数千Byteの領域を取っていることもあるでしょう。RDBMSのデータに対するアクセスは、カラム単位でもレコード単位でもなく、ブロック(ページ)単位になりますので、レコード数によっては非常に大量のアクセスが発生します。 ブロック単位のアクセスはデータの入り方によって何とも言えないので、レコード長で考えるとすると、数百〜2000Byteのレコード長で1万件(数M〜20MByte)前後で、検索頻度が少ないのであればLIKE検索で十分

    LIKE検索は使ったらダメな場合もある - 全文検索について - SQLer 生島勘富 のブログ
  • MySQL5.6で増えたexplicit_defaults_for_timestamp - hiroi10のブログ

    あまりぐぐっても出てこなかったので簡単に書いてみる。 MySQL5.5のmy.cnfをそのまま流用してMySQL5.6を起動すると以下のようなメッセージがエラーログファイルに出力される。長いので改行していますが実際は一行。 121104 22:29:57 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).こちらはMySQL 5.6.6から追加されたexplicit_defaults_for_timestampによるもの。 booleanでデフォルトはFALSE(0)。動的変更は不可となります。公式Doc とりあえずFALSEの

    MySQL5.6で増えたexplicit_defaults_for_timestamp - hiroi10のブログ
  • HomeBrewの仕組みについてまとめておく - それマグで!

    Homebrewを使っている。MySQLが入らなくて困ったので、改めてまとめ直す。 Homebrewとは、Macportsに取って代わりそうな、Macでのパッケージインストーラ home brew インストール ruby -e "$(curl -fsS http://gist.github.com/raw/323731/install_homebrew.rb)” homebrew で使う用語について 用語 来の意味 makeのアナロジー Brew ビール醸造する make する HomeBrew 自家醸造 つまり、自分でビルドする意味 Celler ビール貯蔵庫 つまり、インストール先 Keg タル、熟成用 つまり、makeの材料 Formula 調理法 つまりビルド手順が書かれたスクリプト Pouring ジョッキに注ぐ つまり、Macに注ぐ(イント) 自分でパッケージをビルドして使う

    HomeBrewの仕組みについてまとめておく - それマグで!
  • innodb_buffer_pool_sizeのチューニング:どれくらい割り当てる?

    結論としてはinnodbテーブルの全データ量だそうです。 ここ最近はデータベースサーバのリプレースの案件の担当をしているのですが、サーバのサイジングをしていてふと、「どれくらいメモリあれば足りるんだろう」と疑問に思いました。 よく「サーバの全メモリの50%から70%くらい」とか「80%」くらいとか言われますが、それはどちらかというとスワップしないための限界値を示すものであって、理想値ではないですよね。それでいろいろ調べてみたところ、なかなか日語で良いまとめがなかったので、まとめてみようと思います。 目次 そもそもinnodb_buffer_poolとは? 使用状況を確認する(SHOW ENGINE INNODB STATUSでの計測) 適切なinnodb_buffer_pool_sizeは?(チューニング方法) そもそもinnodb_buffer_poolとは? InnoDB maint

  • 漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法

    ちょっとキャッチ−なタイトルをつけてしまったが、今日は独断と偏見でMySQLを高速化する方法を10個紹介しよう。MySQLサーバをチューニングするときや初期導入する場合などに参考にしてもらいたい。 1. バッファを増やす、または減らす チューニングの基中の基であるが、適切なバッファサイズを設定することはパフォーマンスチューニングの要である。主なバッファは次の通り。 innodb_buffer_pool_size・・・InnoDBだけを利用する場合は空きメモリの7〜8割程度を割り当てる最も重要なバッファである。余談だが、実際にはここで割り当てた値の5〜10%ぐらいを多めにメモリを使うので注意が必要だ。 key_buffer_size・・・MyISAMだけを利用する場合は、空きメモリの3割程度を割り当てるといい。残りはファイルシステムのキャッシュ用に残しておこう。 sort_buffer_

    漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法
  • MySQL 5.6のインストール後にチューニングすべき項目 | Yakst

    MySQLコミュニティマネージャのMorgan Tocker氏による、MySQL 5.6をインストールした後にデフォルト値から変更した方がよいパラメータの解説。 数々のデフォルト値の改善によって、過去のバージョンと比べてMySQL 5.6では設定しなくてはならない値がかなり減った。とは言え、変更すべきものについてここで書いておきたい。 InnoDBの設定 innodb_buffer_pool_size - デフォルトは128M。これは、メモリにロードされるデータとインデックスのためにInnoDBがどのくらいメモリを使うかを指定するものなので、設定すべき重要な値だ。MySQLの専用サーバなら、搭載されているメモリの50%から80%が推奨される設定値だ。例えば、64GBのRAMを搭載しているサーバなら、バッファプールは50GB程度にすべきだろう。 innodb_log_file_size -

    MySQL 5.6のインストール後にチューニングすべき項目 | Yakst
  • 雑なMySQLパフォーマンスチューニング

    2019/01 JSUG勉強会の資料です。 この資料でDisっているのはJPAではなく、 ・何も考えずに「標準だから」というだけでJPAを選ぶ人 ・OSSに全くコントリビュートせずにフリーライドする人 です。

    雑なMySQLパフォーマンスチューニング
  • mysqldとmysqld_safeの関係 – OpenGroove

    mysqldとmysqld_safeの関係について。 mysqld_safeはMySQLを安全に起動するためのプログラム、くらいの認識はあったのだが、 では具体的に何がどう安全なの?...と、なると答えに詰まるので、改めて書いておく。 MySQLのインスタンスはmysqldを直接起動するのではなく、mysqld_safeを経由して 起動させることが推奨されている。 mysqld_safeはひと言で言うとmysqldを監視しているデーモンである。 # /etc/init.d/mysql startを実行した時というのは、mysqldがダイレクトに起動 しているのではなく、mysqld_safe内で起動している。 つまり、mysqld_safeが内部でmysqldを実行しているのである。 しつこいが起動の流れを改めて書くと、以下のようになるわけだ。 # /etc/init.d/mysql st

  • RailsとMySQL5.6.xで全文検索をやってみた - リア充爆発日記

    時間がないので備忘録的に書いていく。 http://dev.mysql.com/doc/refman/5.6/en/fulltext-search.html 前提 全文検索には、Natural Language Full-Text SearchesとBoolean Full-Text Searchesがある。 日語で前者を使うには、分かち書きを別途導入する必要があって辞書メンテとかが大変なので、後者を選択。 後者の場合はNgramを使えば言語問わずなんとかなる。Ngramについては別途ググってください。 MySQLの設定 [mysqld] ft_min_word_len = 2 innodb_ft_min_token_size = 2 上がMyISAM用で下がInnoDB用なのでどっちかでいい人はどっちかだけで。 デフォルトは4なんだけど、日語の場合2文字あれば充分意味を為す単語が多い

    RailsとMySQL5.6.xで全文検索をやってみた - リア充爆発日記
  • MySQLの「InnoDB」と「MyISAM」についての易しめな違い - (2015年までの)odaillyjp blog

    今回はMySQLのストレージエンジンという重箱の隅をつつくようなネタをメモしておきます。 私はMySQLについてはよちよちレベルなので、込み入った内容には触れられません。初心者でも理解しやすい部分での違いを中心にまとめていこうと思います。 【復習】ストレージエンジンとは MySQLなどのデータベース管理システムが、データベースにデータを書き込んだり、読み込んだりするときに使われる基盤を「ストレージエンジン」と呼びます。初心者同士の会話の中で「MySQLを使ってデータを保存する」と表現することがありますが、実際にデータの保存処理を行っているのが、このストレージエンジンになります。MySQLの論理構造を図で載せます。 MySQLは「データベース管理システム」ですので、データベースを管理するために必要である様々な機能が搭載されています。その中の「データの読み書き」という部分を担当しているのがスト

    MySQLの「InnoDB」と「MyISAM」についての易しめな違い - (2015年までの)odaillyjp blog
  • YappoLogs: なぜ SQL_CALC_FOUND_ROWS や LIMIT OFFSET のページングが良く無いのか

    なぜ SQL_CALC_FOUND_ROWS や LIMIT OFFSET のページングが良く無いのか ここ最近の大規模サービス関連したデータページング考です。 mysql 5.5.34 で試して記事書いてます。 bigdata テーブルは id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (id) なカラムがある前提です。もちろん InnoDB です。 2014年なんだからCOUNT(*)とかSQL_CALC_FOUND_ROWSとかLIMIT OFFSETのページングはやめようぜ - Togetterまとめが発端にみえるけど、わりと昔から話されてる事なんだけど、「nippondanji SQL_CALC_FOUND_ROWS」でググっても有用な情報ないし文書化されてないからしとく。 ページング処理で使われがちな機能です。 S

  • MySQLのキャッシュを有効活用するために気を付けること - ハウテレビジョンブログ

    明けましておめでとうございます! 大晦日には父と二人で一升瓶をまるまる空けてしまった@who_you_meです。 DBのパフォーマンスチューニングにはさまざまな要素がありますが、キャッシュの活用はそのなかでもかなり重要な項目です*1。 「そもそもキャッシュが有効になっているか」「メモリが適切に割り当てられているか」などDBMS側で設定する内容もありますが、同じぐらい大事なのが「キャッシュが効きやすいクエリを発行しているか」です。 Webアプリのコードを書く場面でも、少しの注意でキャッシュをより有効活用できる場面がいくつかあるので、今回はそれについてご説明します。 弊社の環境に合わせてCakePHP + MySQLの例を記載してますが、他のWebフレームワーク、RDBMSでも応用可能な内容のはずです。 大文字と小文字 Webサービスを作る上ではあまり関係ないかと思いますが、クエリをキャッシュ

    MySQLのキャッシュを有効活用するために気を付けること - ハウテレビジョンブログ
  • Windows環境にてC言語やC++ でODBCを使うには1 さとーC++ぶろぐ/ウェブリブログ

    「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧

    Windows環境にてC言語やC++ でODBCを使うには1 さとーC++ぶろぐ/ウェブリブログ
    WorldWorldWorld
    WorldWorldWorld 2009/06/20
    [C/C++][ODBC][プログラミング]
  • 限界までMySQLを使い尽くす!!

    どこまで出来るか?!やれるところまでやってやるぜ!!と、威勢が良いのは若い間だけの話。オトナのオトコは、攻めるときはとことん攻めるが自らの限界もわきまえて賢く振る舞うのがスマートってものである。というわけで、今日はMySQLのいろいろな限界についてまとめてみる。皆さんも是非MySQLの限界を知り、MySQLをもっとスマートに使って頂きたい。 SQL文の最大長 MySQLサーバーが実行出来るSQL文の最大長は、max_allowed_packetシステム変数で表される。max_allowed_packetの最大値は1GBである。max_allowed_packetの値はセッションごとにも設定可能なので、デフォルトではそこそこの値(16MBなど)に設定しておいて、必要に応じて大きな対を使うと良いだろう。 データベースの個数 データベースオブジェクトの個数に制限はない。データベースオブジェクトは

    限界までMySQLを使い尽くす!!
  • 1