タグ

dbに関するmac10のブックマーク (15)

  • 社内SQL研修のために作った資料を公開します | 株式会社AI Shift

    こんにちは、Development Teamの三宅です。 先日、社内(AI事業部内)でSQL研修の講師を担当したので、今回はその内容について簡単に共有したいと思います。 はじめに 例年、AI事業部では、新卒エンジニアの育成のためにソフトウェアエンジニア研修を行っております。今年はフルリモートでの実施となりました。研修期間は2週間ほどで、内容は前半が講義、後半が実践(チーム開発)でした。私が担当したのは、講義パートの一部であるSQL研修です。SQLRDBにあまり慣れていない人でも、できるだけ体系的な学びが得られるようにすることを目標に、様々な資料をまとめて提供する方針で準備しました。結果的には、ハンズオン込みで4時間ほどのやや長い講義となりましたが、勉強になったという声も頂けたのでやって良かったと思っています。 研修資料 研修内容 SQL研修の内容は、基的には大学のデータベース講義で

    社内SQL研修のために作った資料を公開します | 株式会社AI Shift
    mac10
    mac10 2021/06/22
  • 大人のためのInnoDBテーブルとの正しい付き合い方。

    InnoDB関連でよくある質問のひとつに「テーブルのメンテナンスは何をすればいいんですか?」というものがある。InnoDBMySQL 5.5でデフォルトストレージエンジンとなるため、InnoDBのテーブルメンテナンス計画を立ようと思う機会も増えることだろう。そこで、今日はInnoDBのテーブルメンテナンスの各種方法となぜそうしなければいけないかという理由を解説しようと思う。 ANALYZE TABLEテーブルメンテナンスの代名詞といえば、インデックス統計情報の更新ではなかろうか。運用を続けるうちに、知らず知らずインデックス統計情報が狂ってしまい、思うような性能が出ない。RDBMSにはそのような問題がつきものであるが、InnoDBの場合、ANALYZE TABLEは不要である。なぜなら、InnoDBが自発的に統計情報を更新するからだ。InnoDBは以下の条件に適合すると、ANALYZE T

    大人のためのInnoDBテーブルとの正しい付き合い方。
  • なぜMySQLのサブクエリは遅いのか。

    よくMySQLはサブクエリが弱いと言われるが、これは当だろうか?半分は当で半分は嘘である。MySQLのサブクエリだってなんでもかんでも遅いわけではない。落とし穴をしっかり避け、使いどころを間違えなければサブクエリも高速に実行できるのである。今日はMySQLがどんな風にサブクエリを実行し、どのような場合に遅いのかということについて説明しよう。 EXPLAINで実行計画を調べた際に、select_typeにはクエリの種類が表示されるのだが、代表的なサブクエリには次の3つのパターンがある。 SUBQUERY DEPENDENT SUBQUERY DERIVED 結論から言おう。遅いのは2番目、DEPENDENT SUBQUERYである。DEPENDENT SUBQUERYとはいわゆる相関サブクエリに相当するもので、サブクエリにおいて外部クエリのカラムを参照しているサブクエリのことである。そし

    なぜMySQLのサブクエリは遅いのか。
    mac10
    mac10 2009/03/26
  • [ThinkIT] 第1回:定量的な情報収集のススメ (1/3)

    MySQLサーバに限らず、大量のアクセスを処理するデータベースやアプリケーションサーバ群に対して、それぞれの環境に合わせたチューニングを行うことは企業システムにおいて必須の項目です。しかし「チューニングすべきパラメータとその最適値をどのように決定すればよいのか」、また「実際にチューニングを施すことによってどの程度効果があったのか」を把握することは意外に難しいものです。 ですが、敢えていえば答えは明瞭で、「定量的な情報収集と分析」の他にないでしょう。あらかじめ情報を収集しておけば、チューニング前後でのデータを比較することによってどのような変化が起きたのかを知ることができます。 連載では、まずはMySQLサーバにおいて収集すべき情報を提示し、その後、それらを利用した基的なパラメータについてのチューニング方針を紹介します。 また、今回はOSにCentOS 5.0、データベースにMySQL 5

  • Railsらしいデータベース管理システム·rbDB MOONGIFT

    Webベースのシステム開発でMySQL管理を行うとすればphpMyAdminが選択されることだろう。確かに優秀なWebアプリケーションだ。だがちょっと待って欲しい。時代は常に変わっている、時には新しいものに触れてみるのも良いのではないだろうか。 Rails製のデータベース管理システム Ruby on Railsの開発者であれば、データベースももちろんRailsで管理しよう。使うのはrbDBだ。 今回紹介するフリーウェアはrbDBRuby on Rails製のデータベース管理システムだ。ソースコードは公開されているが、ライセンスは明記されていなかったのでご注意いただきたい。 rbDBは既存のアプリケーションの中に組み込むという訳ではなく、MySQL全体の管理を行うWebアプリケーションだ。とは言え、最適化等ができる訳ではなく、データベースの作成やテーブルの作成、データのメンテナンス等が主な

    Railsらしいデータベース管理システム·rbDB MOONGIFT
    mac10
    mac10 2008/12/21
  • データベースを解析してレポーティング·SchemaSpyGUI MOONGIFT

    最初の開発ではデータベースの構造にも注意がされ、適切に正規化されているものだが、運用を続けていくうちに拡張、変更されて徐々にもとの形を失っていく。その中には非効率的なもの、不要になったものなどが溢れていることも多い。 接続情報などを設定する そんな時は構造を見やすい形に出力し、検討し直すのが良いだろう。その際に役立ちそうなのがSchemaSpyGUIだ。GPLで公開されているオープンソース・ソフトウェアで、元々コマンドラインベースで動作するSchemaSpyにGUIをかぶせたものになる。 SchemaSpyGUIが対応しているデータベースは(というよりもSchemaSpyになるだろうが)、Oracle/MySQL/PostgreSQL/DB2/Firebird/HSQLDB/Sybase/MS SQL Serverなどになる。主要なデータベースであれば大抵対応している。 テーブル一覧 利用

    データベースを解析してレポーティング·SchemaSpyGUI MOONGIFT
    mac10
    mac10 2008/09/22
  • DBは習うより慣れよ!

    試してわかる並列処理 巨大なデータベースを検索する場合や、アカデミックで複雑な検索を行う場合に、1つのクエリがとてつもなく重たくなった経験はありませんか。もちろん、SQL文の効率が悪い、あるいはインデックスの張り方が悪いなど、パフォーマンスチューニングの基動作ができていない場合もありますが、そもそも「そんな巨大なクエリを1台のマシンでやらせることに無理がある」場合もあります。これに対する強力な処方せんの1つが並列処理(パラレルクエリ)です。 最近は、データウェアハウスやメールの解析といった情報系のシステムが増えており、データベースのクエリに求める利用者の要望は複雑化しています。しかも、Googleのような検索エンジンがサクサクと動いているので、データベースの検索なんて早くて当たり前と考える利用者が増え、期待値は高まる一方です。 ただ、業務に必要不可欠な基幹系のシステムとは違い、情報系のシ

  • Apacheパフォーマンス・チューニングのポイント

    現状の測定(ベンチマーク)と結果の着眼点 ここからはApacheに着目して、パフォーマンス・チューニングのための準備を行う。チューニングするに当たって、まず現状を十分に分析し、具体的な目標を定めることから始めたい。目標をどれだけ具体化するかはともかくとしても、現状を数値的に知りもせずに、漠然と「遅い遅い」と騒いでいても仕方がない。 現状を数値的にとらえるにはツールが必要となる。いわゆるベンチマーク・ツールだ。Apacheには、標準で「ab」(Apache Bench)というツールが付属している。abの構文は、

    Apacheパフォーマンス・チューニングのポイント
    mac10
    mac10 2008/06/13
  • EnterpriseZine:DB構築時の10大ミス

    はじめに 流行りすたりの激しいソフトウェア開発の世界でも、昔からほとんど変わらっていないものがいくつかあります。その1つがデータベースの運用の仕方です。多くの開発者はAJAX Webインターフェイスや最新の目を見張るようなWindowsユーザーインターフェイスを積極的に採り入れていると思いますが、その陰で、今もなお10年前と同じようにデータベースとのデータのやりとりに難儀しているのではないでしょうか。さらに驚くことに、開発者は古き良きWindows 95以前の時代と同じようなミスを未だに繰り返しています。もしかしたら、我々はデータベースの使い方をなんとなく覚えただけで、データベースの何たるかを当には理解していないのではないでしょうか。ともかく、私がこれまで再三目にしてきたミス、その中で特に重要と思われるものを私なりに列挙してみました。 データベースの選択を誤っていないか データベースは素

    EnterpriseZine:DB構築時の10大ミス
    mac10
    mac10 2007/11/29
  • Web2.0ナビ: SQL-DESIGNERがスゴイ

    いいね! 0 ツイート B! はてブ 447 Pocket 2 データベースの設計時にER図をかくことが多いと思いますが、SQL-designerというウェブベースのツールが非常に使いやすいく、デザイン的にも綺麗で便利。 MSproject等のデータベース設計を行う専用ソフトは非常に多くあるが、どれもインストールが必要だったり、設定ファイルが必要だったり、ソフトが重かったり、環境依存が激しかったりして、使いにくい。 使いかたは簡単で、 1.ウェブページにいって 2.テーブルやフィールドを追加する 3.プリントアウトorXMLエクスポート だけ。 データの型なども選択できて、設計が終わったら、SQL文をそのまま発行したり、作ったEQ図をXMLでエクスポートやインポートすることも可能。Javascriptベースなので、めんどくさいインストールや環境依存もなし。 ウェブ上でやるのは、セキュリティ

    mac10
    mac10 2006/10/29
  • 画像配信の負荷分散も比較的簡単?(その1) - 最速配信研究会(@yamaz)

    30万個ぐらいの静的ファイルを配信するサーバーの選び方 で静的な配信サーバに関することが述べられている. naoyaさんが公開されてるInside Hatena Bookmark's Backend の資料などを読むと、mod_perlなサーバーやMySQLサーバーの選び方の参考になったりするわけですが、世の中を見渡してみても、静的コンテンツ(画像とか)を配信するサーバーの指南書らしきものはなかなか見あたりませんでした。 なので、経験を元に書いてみることにします。 ということらしい.書いてあることはすべて同意だけど, つい3ヶ月くらい前まで 平均15k×1万URL×50億httpアクセス/day 平均4KByte×100万URL×3億HTTPアクセス/day な画像サーバと某所で向き合ってたため,ちょっとは役に立てるかもしれないと思ったので,私の経験を書いてみようと思う. 動画配信の負荷分

    画像配信の負荷分散も比較的簡単?(その1) - 最速配信研究会(@yamaz)
  • 素早く正規形を見抜く実践テクニック(1/4) - @IT

    今回のテーマはデータベースエンジニアの必須知識の1つである「正規化」です。正規化は、リレーショナル・データベースのテーブル設計を行ううえで非常に重要なテクニックであり、データベースを設計、実装したことのある方なら一度は正規化に触れているのではないでしょうか。 それほど基的な知識であるにもかかわらず、正規化を説明できる人はなかなかいません。多く聞かれるのが「何となくテーブルを作ると自然に第3正規形になる」とか「実務上は第3正規化まで行えば問題ない」というものです。 ではなぜ「第3正規化まで行えば問題ない」のでしょうか。稿ではひととおり正規化について確認しながら、あまり触れられることのない第3正規化より先の正規化を紹介して、この疑問に答えていきたいと思います。 正規化の位置付け 正規化は、データベース設計全般にかかわる基礎知識ですが、特に論理データモデリングの作業の中で必要になります。稿

    素早く正規形を見抜く実践テクニック(1/4) - @IT
    mac10
    mac10 2006/05/11
  • tomo.ac

    This domain may be for sale!

    mac10
    mac10 2006/04/26
  • 1つのSQL文で複数の表にINSERTする絶品テクニック(1/2) ― @IT

    連載はSQLの応用力を身に付けたいエンジニア向けに、さまざまなテクニックを紹介する。SQLの基構文は平易なものだが、実務で活用するには教科書的な記述を理解するだけでは不十分だ。連載は、著名なメールマガジン「おら!オラ! Oracle - どっぷり検証生活」を発行するインサイトテクノロジーコンサルタントを執筆陣に迎え、SQLのセンス向上に役立つ大技小技を紹介していく。(編集局) FOR...LOOP文を使って、いくつものSQL文でデータをINSERTしているPL/SQLプロシージャやプログラムをよく見掛けますが、実は1度にデータをINSERTする方法もあるんです。マルチテーブル・インサート(Multitable Insert)とはその名のとおり、1つのSQL文で複数の表にINSERTが可能になります。この最大のメリットは、やはりパフォーマンスです。では早速ご紹介します。 マルチテーブ

    1つのSQL文で複数の表にINSERTする絶品テクニック(1/2) ― @IT
    mac10
    mac10 2006/04/26
  • リレーショナル・データベースの世界

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    mac10
    mac10 2006/04/26
  • 1