タグ

sqlに関するhackedのブックマーク (20)

  • 第7回 性能改善の鍵、インデックスの特性を知る~B-treeとハッシュ (1)B-tree | gihyo.jp

    SQLアタマアカデミー 第7回性能改善の鍵、インデックスの特性を知る~B-treeとハッシュ (1)B-tree はじめに データベースを扱う仕事をしていると、パフォーマンスの問題に悩まされることは日常茶飯事です。とくに最近は、データベースに格納されるデータ量が飛躍的に増え、サーバのCPUやメモリといったハード面の増強だけでは追いつかないことも多くあります。 そのようなケースに対応するため、DBMSは性能改善のための手段を多く用意しています。その中で最もコストパフォーマンスの良い方法が、インデックス(索引)です。アプリケーションにもハード構成にも影響を与えずに実行でき、うまくいかなければすぐに削除できるという手軽さが大きな魅力で、効果はしばしば絶大です。 インデックスにはいろいろな種類があり、またDBMSによってもサポートする種類に差がありますが、稿では最も重要な2つを取り上げます。それ

    第7回 性能改善の鍵、インデックスの特性を知る~B-treeとハッシュ (1)B-tree | gihyo.jp
    hacked
    hacked 2009/12/14
  • SELECT文の総仕上げはサブクエリ(1/2) ― @IT

    初回から7回にわたってSELECT文の利用法を取り上げてきましたが、それも今回でとうとう最後となります。今回取り上げるのは、SQL文の中にSELECT句を入れ子にして埋め込む「サブクエリ」です。 サブクエリとは サブクエリは「副問い合わせ」とも呼ばれ、SQL文の中にSELECT文を埋め込み、抽出条件として利用することを可能としています。これまで、テーブルからデータを抽出するためにWHERE句による絞り込みやJOIN句による結合を利用してきましたが、サブクエリはその応用といえる存在です。 では、次のような例を見てみましょう。

    SELECT文の総仕上げはサブクエリ(1/2) ― @IT
    hacked
    hacked 2009/09/08
    サブクエリ
  • SELECT文の総仕上げはサブクエリ

    サブクエリのさまざまな場所での利用 ここまで取り上げたサブクエリはWHERE句で利用してきましたが、サブクエリはWHERE句だけでなくさまざまな場所でも利用可能です。ここでは、代表的な利用方法であるSELECT句とFROM句での利用を取り上げます。 SELECT句でのサブクエリの利用 WHERE句でサブクエリを利用する場合、サブクエリの結果を取得することはできず、WHERE句にて条件式として利用するだけでした。一方、SELECT句でサブクエリを利用する場合、メインクエリの結果としてサブクエリの結果を取得できます。具体的な例を見てみましょう。 SELECT CustomerID,COUNT(*) AS Cnt_Cust, (SELECT COUNT(*) FROM Sales.SalesOrderHeader) AS Cnt_All FROM Sales.SalesOrderHeader G

    SELECT文の総仕上げはサブクエリ
    hacked
    hacked 2009/09/08
  • 3つ以上の外部結合から抽出するSQL構文 - OKWAVE

    hacked
    hacked 2009/09/06
  • SELECT構文:JOINを使ってテーブルを結合する - 第3章 SQL構文 - [SMART]

    JOINは複数のテーブルを連結させるために用意されたキーワードです。単純にテーブルを連結させる以外にも、LEFT JOIN ONやUSINGなどの便利なキーワードがあるので、いろいろ試してみましょう。 リレーションによる関係付け テーブルの作成とデータの挿入 ここでは、購入履歴テーブル(テーブル名=purchase)、商品テーブル(テーブル名=goods)、顧客テーブル(テーブル名=customer)を作成し、それを使って説明していきます。CREATE TABLEとINSERTを使って、テーブルの作成とデータの挿入をしておきましょう。 テーブルを作成する際の手順は、CREATE TABLEに続き、作成するテーブル名を指定します。次に、カッコ内にフィールドの定義を列挙していきます。フィールドの定義はフィールド名とデータ型、それに制約などを必要なだけ宣言します。 CREATE TABLE構文

    SELECT構文:JOINを使ってテーブルを結合する - 第3章 SQL構文 - [SMART]
  • 外部結合の使い方

    はじめに SQLに対するよくある誤解の1つに、「SQLは帳票作成のための言語だ」というものがあります。確かに、SQLは定型・非定型を問わず、さまざまな帳票や統計表を作成するシステムで利用されています。そのこと自体に問題はありませんが、エンジニアにとってもSQLにとっても不幸なことは、SQL来の用途ではない結果のフォーマット整形までがSQLに求められることです。あくまでSQLはデータ検索を目的に作られた言語だからです。 しかし同時に、SQLは多くの人が考えているよりずっと強力な言語です。特に近年は、そうした用途にも対応すべく、OLAP関数をはじめとするレポート作成のための機能が多く取り入られるようになりました。システム全体としてソースを簡略化でき、十分なパフォーマンスを得られるなら、SQLの力を利用する価値は十分にあります。 稿では、外部結合(OUTER JOIN)を利用したフォーマッ

    外部結合の使い方
    hacked
    hacked 2009/09/01
  • SQL講座 INNER JOINを使った表の結合

    「1日1問」仕事や勉強に役立つIT知識を充電! リクルートが運営する「ITキャパチャージ」は、最初に会員登録が必要ですが、無料で仕事から情報処理技術者試験まで幅広く活用できるWebサイトです。IT担当者のスキルアップに役立つ情報処理に関する問題を、毎日1問ずつ、メールやサイト上で提供するサービスです。解答ページはIT初心者でも分かる丁寧な解説つきで、サイト上では過去の問題にも挑戦できます。 また、IT用語が調べられるIT単語帳は、説明も詳しく簡単に調べられ、たいへん便利です。ぜひ、会員登録して活用したいサイトです。 INNER JOINを使って表を結合する SELECT文において複数の表を結合するときはWHERE句で結合条件を指定するほかにFROM句でINNER JOINを指定して表を結合することもできる。 INNER JOINの記述形式 SELECT 列名1,列名2,~列名n ← どの列

    hacked
    hacked 2009/09/01
  • サブクエリとJOIN

    で、検証に使用したSQLが以下の2つになります。 shopsテーブルでdelflagが1となっているIDを対象に dataテーブルを取得し、valの合計値を求めるSQLになります。 SELECT data.id, sum(data.val) FROM data, shops WHERE data.id = shops.id AND shops.delflag = 1 GROUP BY data.id; 今回はSQLServer2005での実行検証なので、画像で実行計画をみせます♪ JOINではテーブルスキャン→ソート→マージ・ジョイン(ジョイン処理です)→計算→出力 ですが、 サブクエリではテーブルスキャン→ネスティド・ループジョイン(ジョイン処理です)→ソート→計算→出力になっています。 この例ですと、サブクエリのネスティド・ループジョインの方がコストが低く出ていますね。 (マージ・ジョ

    hacked
    hacked 2009/08/22
  • オラクルマスターへの道: Silver試験対策講座 (SQL編)

    hacked
    hacked 2009/08/21
  • SQL講座(シスアドから高度へのSQL)

    hacked
    hacked 2009/08/21
  • 神彩争霸8-首页

    神彩争霸8- 友情链接: 快三软件下载-官方-彩票app下载2020_官方-红运彩票|红运彩票app-大兴彩票-【购彩大厅】-一分快3-官网-彩票奖多多-官网-彩神vlll官网_首页-三分快三app下载 _ 首页-快三软件下载-首页-V8彩票-首页-网信彩票-我的账户-腾讯分分彩app下载-官网下载-彩吧-官网-6分彩票-安全购彩-大星彩票-官网app下载-网上购彩-首页 布林肯称乌可用美提供的武器夺回领土 俄:危险边缘| 美国推迟“民兵3”洲际弹道导弹试射:为避免对华紧张关系升级| 布林肯呼吁巴基斯坦向中国申请债务免除 外交部回应| 工信部等五部门:到 2030 年,内河船舶绿色智能技术全面推广应用| 港珠澳大桥香港跨境私家车常规配额提高 每月增加最多500个| 北上深多地楼市,正在传递同一个信号| 重大发现!北宋东京城州桥重见天日| 克里米亚应征入伍新兵身着军装整齐列队 出发前与亲友道

  • リレーショナル・データベースの世界

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

  • Infoseek[インフォシーク] - 楽天が運営するポータルサイト

    人気再燃!ポケモンGOをより楽しむウェアラブルデバイス4選 街中で『ポケモンGO』を遊ぶにしても、スマートフォンを出したりしまったりしながら歩くのはなかなか難し…

    Infoseek[インフォシーク] - 楽天が運営するポータルサイト
  • MySQLで分析関数を模倣2(中編)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    MySQLで分析関数を模倣2(中編)
  • AccessをMSDEのフロントエンドとして利用する

    無償の企業向けデータベース・エンジンであるMSDEは、コマンド・プロンプトから操作することが基であるが、使い慣れたAccessからアクセスできれば便利である。 別稿のWindows TIPS「データベース・サーバのフロントエンドとしてAccessを利用する」では、MySQLやPostgreSQL、MSDE(Microsoft SQL Server Desktop Engine)など主要なデータベース・サーバのフロントエンドとして、Accessを利用する方法を紹介した。これらデータベース・サーバは、標準機能としてGUIベースの管理ツールを持たない。つまり、ただ単にテーブルの中身を確認するだけのためにも、いちいちコマンドライン上からSQL命令を発行しなければならないのだ。しかし、Accessを介することで、単純なデータ入力は、Accessの標準的な機能である「テーブル」や「フォーム」によって

  • Google、MySQLを強化するパッチを無償リリース:CodeZine

    Googleは、同社の製品開発の中から生まれたMySQLを強化するパッチを公開した。GoogleのWebサイトから無償でダウンロードできる。 このパッチはMySQLの扱いやすさと信頼性を向上させる目的で作られており、主にスレーブサーバ(レプリケーションとなるサーバ)の機能を強化させることができる。例として、スレーブサーバが更新通知を受け取らない限りマスタサーバを更新させない機能や、再起動なしでスレーブサーバをマスタサーバに置き換える機能などが備わっている。 他にもアクティブになっているアカウント・テーブルをモニタリングするものや、クライアント/MySQL通信のための高速な圧縮機能なども用意されている。 ちなみに、このパッチはLinux上で動作するInnoDB用に最適化されたものとなっている。その理由としてGoogleは「我々がInnoDBを使っているため」と説明している。また、現在パ

  • MySQLのクエリを最適化する10のTips - PHPプロ!ニュース

    平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 件に関するお問い合わせはこちらよりお願いいたします。

  • DSAS開発者の部屋:5分でできる、MySQLのメモリ関係のチューニング!

    MySQLのチューニングにおいて非常に重要となるメモリ(バッファ)関連のパラメータについて、 チューニングのポイント DSASのとあるDBサーバ(実メモリ4GB)の実際の設定値 をまとめてみます。 また、必要メモリの総量の計算や限界値を越えてないかチェックしてくれるスクリプトも紹介します。 是非、参考にしてみてください! まず最初に注意点を。 バッファには2つのタイプがあります。 グローバルバッファ スレッドバッファ グローバルバッファはmysqld全体でそのバッファが1つだけ確保されるもので、 これに対し、 スレッドバッファはスレッド(コネクション)ごとに確保されるものです。 チューニングの際にはグローバル/スレッドの違いを意識するようにしましょう。 なぜなら、スレッドバッファに多くのメモリを割り当てると、コネクションが増えたとたんにアッという間にメモリ不足になってしまうからです。 in

    DSAS開発者の部屋:5分でできる、MySQLのメモリ関係のチューニング!
  • SQL講座 LEFT JOIN とRIGHT JOIN(表の外部結合)

    「1日1問」仕事や勉強に役立つIT知識を充電! リクルートが運営する「ITキャパチャージ」は、最初に会員登録が必要ですが、無料で仕事から情報処理技術者試験まで幅広く活用できるWebサイトです。IT担当者のスキルアップに役立つ情報処理に関する問題を、毎日1問ずつ、メールやサイト上で提供するサービスです。解答ページはIT初心者でも分かる丁寧な解説つきで、サイト上では過去の問題にも挑戦できます。 また、IT用語が調べられるIT単語帳は、説明も詳しく簡単に調べられ、たいへん便利です。ぜひ、会員登録して活用したいサイトです。 LEFT JOINとRIGHT JOIN 表結合を指定するときにWHERE句とINNER JOINのほかにLEFT JOINとRIGHT JOINで表を結合することができる。これは、表の結合したときに指定された左右いずれかの表を優先して表示を行う指定である。 例題1は売上表と顧

  • naoyaのはてなダイアリー - MySQL の負荷分散に LVS + keepalived を使う

    あとで書く、と言った手前なので書くとします。 DSASの中の人がすごい勢いで LVS の話を書いてくれてます。この辺。LVS を使うと Linux と箱でロードバランサが作れちゃいます。普通に買ったら数百万とかしちゃうやつ。 DSAS の中のひとに感謝しつつ、いい機会なのでやってみよう! と思っていろいろ試して昨日あたりからはてなの中でも LVS + keepalived で動かしはじめてます。いまのところ問題なし。 そのロードバランサをどこに使ってるかですが、普通ロードバランサというとインターネットからの入り口のところに置いてウェブサーバーの負荷分散に使うイメージがあります。が、今回ははてなでは MySQL のスレーブの手前に置くという役割でとりあえず使いはじめました。 +-----------+ +-----------+ | mod_perl | | mod_perl | +----

    naoyaのはてなダイアリー - MySQL の負荷分散に LVS + keepalived を使う
  • 1