運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。
13. インデクスの基本 • データベース性能を決める最大要素 13 – インデクスの効果はシステムデザインの初期からレビュー が必要 – 冗長なインデクス設定を避ける事 // authorのインデクス(abc順) >db.articles.ensureIndex( { author : 1 } ) – . // authorのインデクス(abcとは逆順) >db.articles.ensureIndex( { author : -1 } ) // 複数要素の配列のインデクス– マルチキーインデクス >db.articles.ensureIndex( { tags : 1 } ) 14. サブドキュメント(Sub-document) インデクス • サブドキュメントでのインデクス 14 – ドット表記を使用 { ‘_id’ : ObjectId(..), ‘article_id’ : Ob
自転車通勤始めました。@kyo_agoです。この記事はE2EテストAdventCalendar -26日目です。 今日はGithub上でTravisCI、SauceLabs、Protractorを使って簡単に始められる継続的E2Eテストの方法を紹介したいと思います。 ゴールはGithubにPRする毎にTravisCIがProtractorを使ってSauceLabs上で検証した結果を教えてくれるところです。 登場するユーザ名(kyo-ago)、リポジトリ名(Protractor-SauceLabs-TravisCI-sample)は実際のものに置き換えて読んでください。 SauceLabsの登録まず最初にSauceLabsのアカウントを作成します。 この時点ではGithubのリポジトリも何らかの設定ファイルも必要ありません。 「Getting Started」を押してください。 ダイアログが
前書き - インデックスの作成はなぜ開発者のタスクなのか インデックスの 内部構造 - インデックスは何に似ているか インデックス リーフノード - 二重連結リスト 検索 ツリー(Bツリー) - バランス木 遅いインデックス パートI - インデックスを遅くする2つの原因 where 句 - 検索のパフォーマンスを改善するためにインデックスを作成 等価 演算子 - 一致するキーの検索 プライマリキー - インデックスの使い方を確認 複合インデックス - 複数列に対するインデックス 遅いインデックス パートII - 前の問題点が再び 関数 - where句の 中での関数 大文字・小文字を区別する 検索 - UPPERと LOWER ユーザ定義 関数 - 関数インデックスの制限 インデックスの作り過ぎ - 冗長性の排除法 パラメータ化 クエリ - セキュリティとパフォーマンスのために 範囲 検
SQLのパフォーマンス問題は、SQLそのものと同じぐらいの歴史がある―― ある人は、SQLはそもそも遅いものだとすら言うかもしれません。これは、SQLの歴史が始まった頃は正しかったかもしれませんが、今となっては全く 当てはまらないでしょう。にもかかわらず、SQLのパフォーマンス問題は今も一般的でよくあることです。どうしてそうなってしまうのでしょうか? SQL言語は、恐らく最も成功した第4世代言語(4GL)でしょう。その最大の利点は、「何を」と「どのように」 を分離できることです。SQL文は、どのようにそれを実行するかを記述せずに、単純に 何を必要としているかのみの記述になっています。以下のような例を考えてみましょう。 SELECT date_of_birth FROM employees WHERE last_name = 'WINAND'SQLのクエリは、データを要求する英語の文として読
サイバーエージェント公式ブログをご覧の皆さんこんばんは、インフラ&コアテク本部の須藤(@strsk)です。普段はAmebaのソーシャルゲーム全般のインフラを見つつ、日本語ラップの啓蒙をしながら弊社社員を素材にコラ画像をつくったりしています。好きなAAは麻呂です。 はい、というわけで今回はMySQLインデックスチューニングの基本的な流れについてまとめてみました。 ソーシャルゲームは更新も参照もめちゃくちゃ多いです。数秒のレプリケーション遅延も致命的なので適切なテーブル、クエリとインデックス設計が重要です。(何でもそうですけど)インデックスが多くなると更新コストなどが懸念されますが、インデックスが正しく使われていないクエリを放置している方が悪です。そんなこんなで、割と例も偏ったりしてるかもしれませんがあしからず。 前提としてはInnoDBを想定しています。MyISAMはほとんど使っていません。
MongoDBのIndexメモ Indexの作成 1 db.things.ensureIndex({a: 1}); フィールドaに対してIndexを作成する。すでに作成済みであれば何もしない。 試してみる テスト用のCollectionを作成。 1 2 3 > for (var i=0; i<10000; i++) { ... db.things.save({a: i, b: i*i, c: i*i*i}) ... } 初期状態でのIndexの作成状況を確認。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 > db.things.stats() { "ns" : "test.thi
これの話。 次のような二つの職場があったとしたら、優秀なプログラマの大部分は前者を選ぶのではないでしょうか。 テスト・CI をきちんとやっていて、ソースコード管理は Git & GitHub、もちろんデプロイもほぼ自動化されていて、過去のバージョンに戻すことも簡単にできるため実験がやりやすい。リファクタリングの価値が認識されている。タスク管理ツールや連絡ツールも新しいものを積極的に採用している。権威的な人間がおらず、設計やコードの良し悪しを率直に話し合える。年収 400万。 テストもろくにない Java のコードを手元の Eclipse でコンパイルして、その .class ファイルを WinSCP でコピーしてデプロイしている。バージョン管理システムはろくに活用されておらず、間違えたらおしまいなので PukiWiki の手順書に「~を厳守する」という心構えが出てくる。ファイルを zip
19. MongoDBのIndex 商品名 ボールペン タグ 値段 日用品, 筆記用具 198 包丁 日用品, 刃物, キッチン 2980 バナナ 食料品, 果物 348 ほうれん草 食料品, 野菜 98 牛乳 食料品, 148 食料品で200以下の商品を取得 20. MongoDBのIndex 商品名 タグ 値段 ボールペン 日用品, 筆記用具 198 包丁 日用品, 刃物, キッチン 2980 バナナ 食料品, 果物 348 ほうれん草 食料品, 野菜 98 牛乳 食料品, 148 商品・テーブル CREATE TABLE 商品 ( id INT PRIMARY, 商品名 VARCHAR(100) ); タグ・テーブル CREATE TABLE タグ ( 商品id INT, タグ名 VARCHAR(100), 値段 INT, KEY(タグ名,値段) ); 食料品で200以下の商品 商品
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く