サイバーエージェント公式ブログをご覧の皆さんこんばんは、インフラ&コアテク本部の須藤(@strsk)です。普段はAmebaのソーシャルゲーム全般のインフラを見つつ、日本語ラップの啓蒙をしながら弊社社員を素材にコラ画像をつくったりしています。好きなAAは麻呂です。 はい、というわけで今回はMySQLインデックスチューニングの基本的な流れについてまとめてみました。 ソーシャルゲームは更新も参照もめちゃくちゃ多いです。数秒のレプリケーション遅延も致命的なので適切なテーブル、クエリとインデックス設計が重要です。(何でもそうですけど)インデックスが多くなると更新コストなどが懸念されますが、インデックスが正しく使われていないクエリを放置している方が悪です。そんなこんなで、割と例も偏ったりしてるかもしれませんがあしからず。 前提としてはInnoDBを想定しています。MyISAMはほとんど使っていません。
モバイルファースト室の @rejasupotaro です。 Androidフレームワークには端末内にSQLiteでデータを保存するしくみがありますが、みなさんはどのようにしてますか? クックパッドのAndroidアプリでは、ActiveAndroidを使ってDBにデータを保存しています。 ActiveAndroidとは ActiveAndroid とは、Active Recordパターンを採用したAndroidのORMです。 テーブルのCREATEを行うときに、SQLiteOpenHeleperを継承したクラスでonCreateをOverrideしてdb.execQueryでCREATEクエリを実行…としなくても、ActiveAndroidを使えば、 public class MyApplication extends Application { @Override public void
インフラストラクチャー部の成田(@mirakui)です。 Rails の OR マッパーである ActiveRecord ですが、みなさんどのように運用していますか? ActiveRecord を使うと、 SQL を直接扱うことなく、抽象化された表現で RDB にアクセスできるので、アプリケーションの開発効率という観点ではメリットが大きいです。 一方で、 ActiveRecord が駆使されているアプリケーションをサーバに配置してプロダクションとして運用する立場からすると、いくつかの問題に突き当たります。 まずはクックパッド本体アプリケーションにおける、最新の rake stats をご覧ください。 +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC
mozaic.fm #7 RESTや#mozaicfm REST を聴いての感想、それから「Web+DB vol82のWebAPIデザインの鉄則」に触発されたので書こうと思う。 REST設計について WebAPIを設計するうえでRESTが重要であることは周知のとおりである。 “Constraints are liberating”「制約は自由をもたらす」 @t_wadaさんがおっしゃっているように、RESTを前提にすれば、「アーキテクチャとしてもそうだし、アプリケーションフレームワークも「適切な制約」を設けることで設計のコストが下がる」という大きなメリットが生まれる。 しかし、相変わらずリソース設計やらインターフェース設計やらで悩んでおられる方も多いと聞く。 その一方で個人的には適切なフレームワークを使えばREST設計で悩まなくてもよいはず(※3)という思いもある。 インターフェース設計な
2012年12月07日 Javaのデータベースマイグレーションツール「Flyway」 #JJUG Java Advent Calendar 2012 7日目です。 昨日は@megascusさんの「Java Bug Database 参照していますか?」でした。 先日、弊社サービスにJavaのデータベースマイグレーションツール「Flyway」を導入してみたところ、なかなか便利だったので紹介します。 事前準備 まず、マイグレーションの対象になるデータベースを用意します。 このエントリーでは、MySQL 5.5.28を使っています。 CREATE DATABASE flywayexample DEFAULT CHARACTER SET UTF8; Flywayをプロジェクトに組み込む ドキュメントによるとFlywayを利用するには以下の3つの手段があるようです。 Maven Plugin Com
3. はじめに このセッションではSQL Serverのことを扱います 重要なキーワードは緑字にします 自己紹介 大人の事情で本名と顔をだしていません Microsoft MVP for SQL Server 2011- トラブル対応が主食のデータベースエンジニアです Twitter: elanlilac Blog: http://elan.blog.so-net.ne.jp/ 誰得情報を垂れ流しています 4. はじめに 愚者は経験に学び、賢者は歴史に学ぶ(オットー・フォン・ビスマルク) Nur ein Idiot glaubt, aus den eigenen Erfahrungen zu lernen.Ich ziehe es vor, aus den Erfahrungen anderer zu lernen, um von vorneherein
MySQL Performance Blogの翻訳。インストール後に必ず設定を確認しなければならない設定パラメータ10つを挙げ、その意味を解説する。MySQLの設定変更時の、一般的な注意点も合わせて。 January 28, 2014 By Stephane Combaudon 我々がパフォーマンス監査の仕事をする時には、MySQLの設定のレビューと改善提案を求められる。大抵の場合、たくさんのオプションがある中でほんのいくつかの設定しか変更するように提案しないことに、多くの顧客は驚く。この記事のゴールは、もっとも重要な設定をいくつか挙げてみることにある。 既にこういった提案は過去にもしているが数年前のもので、それ以来MySQLの世界ではたくさんの変化があったのだ。 話の前に 熟練した人でも、重大なトラブルを引き起こすミスをしでかすことがある。従って、ここに挙げたものを盲目的に適用する前に、
リレーションシップを作りたい場合は以下のように getMany() メソッドを使って実装します。この場合、Category : Item が一対多のリレーションシップを持ちます。 @Table(name = "Categories") public class Category extends Model { @Column(name = "Name") public String name; public List<Item> items() { return getMany(Item.class, "Category"); } } 保存・更新・削除・クエリ 作成したモデルクラスを使って DB に保存したりクエリで取得したりするには以下のように実装します。これぞ ActiveRecord スタイル。見やすく分かりやすく素晴らしいですね! // 保存 Item item = new Ite
Medoo - The Lightest PHP database framework to accelerate development 軽量で便利に使えるPHP用DB操作ライブラリ「Medoo」 SQLを書かなくてもメソッドでselect, insert, delete, update 等ができてコードも読みやすくなるライブラリです。 使うには1ファイルをincludeするだけでつかえます コード例。SQLをかかなくてすみ、インジェクション対策機能もあるらしいです 軽量かつ1ファイルなので簡単に導入できるので、ちょっとDBを使おうっていう場合に、MDB2等を使いたくない人は使ってみても良いかも 関連エントリ レイヤー機能による画像合成機能やサムネイル生成等が超簡単に行えるPHPライブラリ「PHPImageWorkshop」 Google,Facebook,Twitter,Tumblr等
genslots() genslots( $slots, $tpl = NULL) Parameters
このエントリーはMySQL Casual Advent Calendar 2013 10日目の記事です。カジュアル! このへんでそろっとカジュアル詐欺と言われるのを防止するために、カジュアルな話を書いてみました。 MySQL5.6も正式リリースされてもうすぐ1年経ち、5.7の足音も聞こえてきている今日このごろですが皆様のMySQLのご機嫌はいかがでしょうか。 新機能や性能向上/bugfixに対応するためにMySQLのバージョンアップを行う機会や性能や不具合調査を行うことも多いかと思います。データベースのバージョンアップは特にメジャーバージョンアップの場合、パラメータのデフォルト値などの変更や仕様変更の影響(オプティマイザの変更)をアプリケーションが受けないか、性能の変化などを検証すると思います。 検証 実際に検証を行う場合、本番環境で流れているクエリをバージョンアップ先のDBに実際に流して
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以下の商品 商品
毎度おなじみ、はてブのホットエントリに「SIをダメにする負のスパイラル」というタイトルのまとめが掲載された。きしだ氏とはかなり視点は違うものの、開発現場の問題点については少し思うところがあるので意見を書いてみようと思う。と言っても、以下の話の内容はデータベースアプリケーションに限定した話であり、またSIerだけに限った話ではないのでその点はご容赦頂きたい。もちろんSIer各位の案件はデータベースは必須なので、本エントリで触れる問題点には該当するだろう。 Q.なぜ炎上するのか? A.正しいデータベース設計ができていないから結論から言おう。データベースアプリケーションの開発が炎上するのは正しいデータベース設計ができていないからだ。ここでいう「正しい」とは、論理的に証明できる正しさという意味ではない。「本来こうするべき」といった意味で捉えて欲しい。 「炎上」というのは、例えばテストが通らない、バ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く