タグ

mysqlに関するHashのブックマーク (107)

  • MySQL5.6における大量データロード時の考慮点

    1 MySQL 5.6における大量データロード時の考慮点 第18回 AWS User Group - Japan 東京勉強会 2013/10/04 平塚 貞夫 2013/10/07 Revision 2 2 自己紹介 • DBエンジニアやってます。専門はOracleMySQL。 – システムインテグレータで主にRDBMSのトラブル対応をしています。 – 仕事の割合はOracleMySQL:PostgreSQL=5:4:1ぐらいです。 • Twitter:@sh2nd • はてな:id:sh2 • • 写真は実家で飼っているミニチュアダックスのオス、アトムです。 3 日のお題 4 InnoDBデータベース 大量データ投入 • 日HPさんが以下の検証結果を公開されています。すばらしい資料です。 http://h50146.www5.hp.com/products/software/oe

    Hash
    Hash 2013/11/22
  • パーティショニングの使用例 - カーディナリティが低いカラムを使って検索する場合

    MySQL 5.1で追加された機能にパーティショニングがある。これは適切に利用すれば非常に強力な機能であることは間違いないのだが、使いどころが難しい。なぜなら、 インデックスをつけるだけでカバー出来る場合が多い。 パーショニングを使わずに、単にテーブルを分けてしまえばいい。 テーブルが巨大にならないとあまり効果を実感できない。 使い方を間違えると性能が落ちてしまう。 などの問題があるからだろう。 そんなわけで、今日と明日でパーティショニングが役に立つシーンを2つ紹介しようと思う。今日は一つ目、インデックスをつけたいカラムのカーディナリティが低い場合だ。カーディナリティとは日語に訳すと濃度とか訳されるが、要は値の種類(分散具合)のことである。例えば、YesかNoの2つの値しかとらないカラムは非常にカーディナリティが低く、インデックスをつけるととても効率が悪い。インデックスを使って目的の行を

    パーティショニングの使用例 - カーディナリティが低いカラムを使って検索する場合
  • 2008-06-29

    mysqlを利用していて、indexをちゃんと張っているのにパフォーマンスが出ない。 explain でも type = ref / key = INDEX 等が表示されているのにすごくクエリーが遅かったりする。 思い切って index を消したら逆にパフォーマンスが改善した! why? データ件数が数万件を越えたあたりからパフォーマンスが劇的に下がった。 と、悩んでいたりしませんか? そんな悩みのひとつの解決策になってくれるかもしれません。 テストは vmplayer 上の debian etch で行います。 ホスト環境 intel Q6600 メモリ2Gの WindowsXPです。 クエリーをキャッシュされないように、クエリキャッシュを 0 にします。 /etc/mysql/my.cnf query_cache_size = 0 #no cahce debug swapで遅くなると困

    2008-06-29
  • MySQLの自動変換を丁重にお断りするためのたった1種類の呪文 - sakaikの日々雑感~(T)編

    先日の『これだけは覚えておきたい!!MySQL の6つの自動変換』 http://d.hatena.ne.jp/sakaik/20100225/mysqlautochange にはたくさんの反響をいただいた。 時にこちらの意図と違っちゃうこともあるけれどもケナゲに気を使ってくれる MySQL が、これほどに皆さんにも愛されていることが判り、MySQLファンの一人として嬉しい限りである。 さて、そのエントリの最後に、 なお、「SQLモード」を指定するとこれらの動作を変更することができる。SQLモードについては気が向いたらいつか紹介してみたい。 と書いたところ、速攻でキムラデービーの木村明治氏が補足エントリーを書いてくださった。 ○キムラデービーブログ [勝手に補足]これだけは覚えておきたい!!MySQL の6つの自動変換 http://blog.kimuradb.com/?eid=83851

    MySQLの自動変換を丁重にお断りするためのたった1種類の呪文 - sakaikの日々雑感~(T)編
    Hash
    Hash 2013/11/12
    sql_mode
  • これだけは覚えておきたい!!MySQL の6つの自動変換 - sakaikの日々雑感~(T)編

    MySQLはとても気ぃつかい屋さんである。我々が投げる多少あいまいな指示も頑張って解釈し、なんとか文句を言わずに実行してみようと挑戦してみてくれる。 今日はそんなMySQLがケナゲに解釈してくれる自動変換について紹介しようと思う。この自動変換、ケナゲなMySQLの奥ゆかしさ故、出した指示と異なる動作をされたことに気がつかないことがある。ここで紹介する6つの自動変換をしっかり脳ミソにたたき込んでおけば、無用なトラブルにハマる時間も減るかもしれない。 1.[数値] 範囲外の数値は頭を押さえつけられる intやsmallint、bigintなどの数値型には、扱える範囲が決まっている。例えばint型なら最大21億ちょっとだ(unsignedの場合は43億弱)。これより大きい数字を登録するよう指示を出すとMySQLはどうするか。そう、頑張って入れられるところまで入れてくれるのである。「入れられるとこ

    これだけは覚えておきたい!!MySQL の6つの自動変換 - sakaikの日々雑感~(T)編
    Hash
    Hash 2013/11/12
  • Facebookが何千台ものMySQLを人手を使わず自律管理する仕組み「MySQL Pool Scanner(MPS)」

    おそらく世界でもっとも大規模にMySQLのクラスタを展開し、運用しているのがFacebookでしょう。複数のデータセンターにまたがり何千台ものMySQLサーバを運用するために、自動化の仕組みは欠かせません。 その自動化がどのような仕組みになっているのか。FacebookのデータベースエンジニアであるShlomo Priymak氏が、Under the hood: MySQL Pool Scanner (MPS)という記事をFacebookで公開しています。 かなり長い記事なので、ここではそのポイントをまとめて解説してみました。詳細はぜひ原文をあたってみてください。 MPSのおもな3つの機能 Facebookで稼働しているMySQLは、つねに1つのマスターとそこからレプリケーションされた複数のスレーブによるレプリカセットを構成しています。このレプリカセットの構造を維持し続けることで、可用性と

    Facebookが何千台ものMySQLを人手を使わず自律管理する仕組み「MySQL Pool Scanner(MPS)」
  • MySQLのRANGEパーティションを使う | 村式流 イッパシエンジニアへの道

    MySQLのRANGEパーティションのお話です。 MySQL5.1からサポートされているパーティショニングですが、ログテーブル等、レコード数が多くなりがちなテーブルに日付でパーティショニングしてます。 最初から遠い未来までのパーティションを切るのは気持ち悪いし、長く運用されるサービスの場合は忘れる可能性もあるのでバッチを回すのがいいと思いますが追加する場合の手順と注意点です。 ・まずはパーティションを作成 CREATE TABLE `mura`.`test1` ( `date` DATE NOT NULL , `name` VARCHAR( 40 ) NOT NULL , `contents` VARCHAR( 255 ) NOT NULL , `created_at` DATETIME NOT NULL ) ENGINE = InnoDB PARTITION BY RANGE (TO_

    Hash
    Hash 2013/11/05
  • ローカルポートを食いつぶしていた話 - download_takeshi’s diary

    ここのところ、お仕事で管理しているシステムで、夜中に負荷が急上昇する事象が発生しており、夜な夜な対応に追われていました。 (このブログ書いている今も、負荷がじわじわ上昇中なんですが・・・) で、いろいろと調査した結果、ようやく糸口がわかってきました。 結論から言うと、ローカルポートなどのネットワーク資源をいつぶしていたようです。 以下、調べていってわかったことなどのメモです。 トラブルの事象 運用しているのは Apache2.2 + mod_perl2 なwebサーバで、リスティング広告システムの配信系です。 リスティング広告の配信のシステムって一般的にロジックが複雑でいやーな感じなんですが、このシステムもご他聞に漏れずかなりのひねくれ者で、しかもトラヒックは結構多めです。システム全体で、日に1000万〜2000万クエリくらいかな。幸か不幸か、このご時勢においてもトラヒック的には成長し続

    ローカルポートを食いつぶしていた話 - download_takeshi’s diary
  • Amazon RDS(MySQL)でTimezoneを変更する | DevelopersIO

    ども、大瀧です。 RDSにするか、DB on EC2にするかを検討する際によく挙がるのが、Timezoneをどうするかという話。AWSのサービスは基的にはUTC(世界標準時)で提供され、RDSも例外ではありません。 「世界展開を狙うサービスであれば当然UTCで!」となるのですが、既存システムをAWSに移行する案件などでは「アプリの改修ができないので、移行前とTimezoneを合わせたい」ケースが多いと思います。 EC2であれば、OSのTimezone設定をちょちょいと変えるだけで対応できるのですが、RDSは直接インスタンスにログインできないため、ちょっとした工夫と注意が必要です。 概要 今回はRDS MySQLを対象に、Timezoneを変更する方法をご紹介します。 RDSでユーザーに提供される"Masterユーザー"は、MySQLのrootユーザーとは異なりSUPER権限(管理者権限)

    Amazon RDS(MySQL)でTimezoneを変更する | DevelopersIO
    Hash
    Hash 2013/10/28
    めんどくさいいいいいい
  • Creating partitions on a production database

    Hash
    Hash 2013/10/22
    テーブルのpartition変更するとき豪快に作り直す方法
  • MySQL :: MySQL 8.0 リファレンスマニュアル :: 11.7 データ型のストレージ要件

    ディスク上のテーブルデータのストレージ要件は、複数の要因によって異なります。 別々のストレージエンジンは異なる方法でデータ型を表し、ローデータを格納します。 カラムか行全体のどちらかでテーブルデータを圧縮できますが、テーブルまたはカラムのストレージ要件の計算が複雑になります。 ディスク上のストレージレイアウトが違っていても、テーブル行に関する情報を通信および交換する内部 MySQL API は、すべてのストレージエンジンにわたって適用される一貫したデータ構造を使用します。 このセクションでは、データ型の固定サイズ表現を使用するストレージエンジンの内部形式およびサイズを含め、MySQL がサポートするデータ型ごとのストレージ要件に関するガイドラインおよび情報について説明します。 情報はカテゴリまたはストレージエンジンごとに示します。 テーブルの内部表現の最大行サイズは 65,535 バイトで

  • MySQL5.6で今までのVerでは問題無かったSQL文がエラーになった場合の対処法 - oranie's blog

    追記:記事の文中で5.6のsql_modeデフォルト値について若干実際の挙動と異なる表記をしていました。rpmでinstallすると/usr/my.cnfというのがひょっこりいて、この中に [mysqld] sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES という記述があり、これを/etc/my.cnfと合わせて設定している様です。で、デフォルト値については5.6.6以降はデフォルト値が「The default SQL mode in MySQL 5.6.6 and later is NO_ENGINE_SUBSTITUTION;」でそれ以前のデフォルト値は「MySQL 5.6.5 and earlier, it was empty (no modes set)」となっているようですね。 詳しくは http://yoku0825.blo

    Hash
    Hash 2013/10/21
    5.6からsql_modeのデフォルト設定が変わる(5.5まではカラがデフォだった). my.cnf で設定. RDSならParameters
  • HowFriendFeedUsesMySqlToStoreSchemaLessData - FriendFeed では MySQL を使いどのようにスキーマレスのデータを保存しているのか

    HowFriendFeedUsesMySqlToStoreSchemaLessData - FriendFeed では MySQL を使いどのようにスキーマレスのデータを保存しているのか 目次 この記事について FriendFeed? では MySQL を使いどのようにスキーマレスのデータを保存しているのか 背景 概観 詳細 一貫性と原子性 性能 FriendFeed? では MySQL を使いどのようにスキーマレスのデータを保存しているのか この記事について "How FriendFeed? uses MySQL to store schema-less data" の日語訳です http://bret.appspot.com/entry/how-friendfeed-uses-mysql CC 2.5 でライセンスされています: http://creativecommons.org/

    Hash
    Hash 2013/10/21
    MySQLをMongoDBみたいに使ってる
  • 限界までMySQLを使い尽くす!!

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

    限界までMySQLを使い尽くす!!
  • データベースとテーブルのサイズを確認する方法 - Simple, Slowly

    テーブルのサイズはphpMyAdminでも見れますが、コマンドから見れたほうが何かと便利なので、調べてみました。 全てのデータベースのサイズを確認する # MB単位 select table_schema, sum(data_length+index_length) /1024 /1024 as MB from information_schema.tables group by table_schema order by sum(data_length+index_length) desc; +--------------------------+---------------+ | table_schema | MB | +--------------------------+---------------+ | database1 | 5579.89978790| | databas

    データベースとテーブルのサイズを確認する方法 - Simple, Slowly
    Hash
    Hash 2013/10/18
    べんりだ.
  • 今さらだけどMySQLのパーティショニング機能を試してみた - (゚∀゚)o彡 sasata299's blog

    2013年03月21日18:11 MySQL 今さらだけどMySQLのパーティショニング機能を試してみた 最近は花粉が飛んでて辛い季節ですがみなさまいかがお過ごしでしょうか。でももうちょっと我慢すればサクラの季節ですよ〜。花見良いですよね、飲みたいだけですが。 ・・さて、今回はちょっと必要になったので、MySQLのパーティショニング機能なるものを試してみました。存在は知ってたけど、実際に試してみたことは無かった…。 パーティショニングとは? これはどういうものかと言うと、MySQL5.1から使えるようになった機能で、ひとつのテーブルのデータを条件によって複数の領域(パーティション)に振り分けて管理することができる、というものです。例えば日別にデータを別々のパーティションに振り分けたり。 パーティショニングするとデータの削除が高速だったり(通常は削除ってものすっごい遅いけど、特定のパーティシ

    Hash
    Hash 2013/10/17
  • Sequel Pro

    Full MySQL Support Sequel Pro is a fast, easy-to-use Mac database management application for working with MySQL databases. Perfect Web Development Companion Whether you are a Mac Web Developer, Programmer or Software Developer your workflow will be streamlined with a native Mac OS X Application! Flexible Connectivity Sequel Pro gives you direct access to your MySQL Databases on local and remote se

    Sequel Pro
    Hash
    Hash 2013/07/18
    しばらく使ってみたが, かなり便利
  • MySQLgame - Learn, Code, Share & Build Your Career

    MySQLgame is a question-and-answer website focused on programming and software development. It is a platform where users can ask and answer questions about a wide range of topics, including algorithms, data structures, programming languages, software development practices, and more.

    MySQLgame - Learn, Code, Share & Build Your Career
    Hash
    Hash 2013/07/02
    MySQLでゲーム... なにこれ? 紹介文テンション高いけど( ゚д゚)ポカーン
  • MariaDB versus MySQL - Compatibility | MariaDB Documentation

    Until MariaDB 5.5, MariaDB versions functioned as a "drop-in replacement" for the equivalent MySQL version, with some limitations. From MariaDB 10.0, it is usually still very easy to upgrade from MySQL.

    MariaDB versus MySQL - Compatibility | MariaDB Documentation
  • DECOLOGでのMySQL BlackHoleエンジンの使い方:DECOLOG TECH BLOG annex:エンジニアライフ

    こんにちわ、ミツバチワークス stoneです。 DECOLOGでは、データベースにMySQLを使用しています。 ストレージエンジンのメインはInnoDBなのですが、他にもMyISAM、BlackHole、Archiveエンジンを使っています。 今回は、その中でBlackHoleエンジンについて、DECOLOG内での利用方法をご紹介したいと思います。 BlackHoleエンジンについて BlackHoleエンジンは、何もしません。 insert、update、deleteを行っても、データは全く変更されませんし、selectをしても、データは何も返ってきません。 実際のデータファイルを見てみても、テーブル定義ファイルの.frm以外のファイルは作成されません。 /dev/nullと似ているイメージです。 が、BlackHoleのテーブルに対して発行されたinsert、update、delete

    DECOLOGでのMySQL BlackHoleエンジンの使い方:DECOLOG TECH BLOG annex:エンジニアライフ