タグ

DBに関するku-kai27のブックマーク (37)

  • NoSQLをRDBの代わりに使うと、どういう恐ろしいことが起こるか。PARTAKEの作者が語る

    データベースの世界でいま注目されているのがNoSQL。特にキーバリュー型データストアは、グーグルのBigTable、FacebookやTwitterが内部で利用しているCassandraやAmazonクラウドが提供しているSimpleDBなど、すでに実際に使われ始めています。 ではそのNoSQLをリレーショナルデータベースの代わりに使ってシステムを構築するとどうなるのか? 身をもって体験したことを記したShinya Kawanaka氏によるプレゼンテーション「間違った方向にCassandraを使ってみた」が公開されています。 NoSQLを用いたシステム構築は、リレーショナルデータベースによる構築どう違うのか? とても分かりやすくまとめられています。ご人の承諾もいただいたので、その内容を紹介しましょう。 NoSQLを使ったときに起こる恐ろしい事例 プレゼンテーションのテーマは「NoSQL

    NoSQLをRDBの代わりに使うと、どういう恐ろしいことが起こるか。PARTAKEの作者が語る
    ku-kai27
    ku-kai27 2021/09/21
    作ろうとしてるアプリのデータベースでどちらがいいか悩んでいたので参考になる。
  • Dart/FlutterのローカルDBの比較 - のんびり精進

    モバイル以外にも対応したローカル DB を使いたかったので、複数のパッケージを調べてみました。 Hive を特に詳しく調べたため、そこだけ情報量が多めです。 2022年12月補足(結論) 記事を書いたときは Isar に注目していましたが、現在は Drift に落ち着きました。 ややこしそうな印象を受けて試さずにいて、しばらく後に再び気になったときに触って良さに気づいたので、もっと早く使えば良かったと思いました。 イチオシです。 高い機能性、型安全 あらゆる場所で使われている SQLite なので非常に堅牢(参考記事) この一点だけを見ても Isar のような個人開発のデータベースは比較にならない SQLite の最新バージョンを利用できる 既に持っている RDB / SQL の知識を活用できる RDB なので高度な操作も自在にできる Flutter Favorite に選ばれている Fl

    Dart/FlutterのローカルDBの比較 - のんびり精進
    ku-kai27
    ku-kai27 2020/02/06
    丁度shared_preferences使ってるのでありがたい。
  • 今まで見たもっともクソなテーブル設計 - 何か着ていればいいよ

    あれは、僕がデータベースを扱ううち最初から3件目のプロジェクトだった。 C++のソースが難解で火を吹いているという話で、自分は低スキルの若造。火にくべるには丁度良い程度のやる気と責任感をもっていた。折悪く別のプロジェクトが終了した直後だったもので投入されたのでした。 現場で『DBからデータを吸い出すツールかSQLを作ってくれ』といわれ話をきくと他社が作ったDB定義がすこぶる使いづらいという。 ER図やDB定義を見せてくださいと言ったのだけど、そんなものは無いという返事。 今ならもうここら辺で逃げ出すところですが、当時は『ふーん。』てなもんでそういうこともあるのかくらいの軽い気持ちで考えていました。 で、プロジェクトの資料をあさりまくって何とかDB定義のようなものも見つけDBのデータを調査し始めたのですが何かがおかしい。 機能の数に比して異様にテーブル数が少ないのです。 ふと周りを見ると、皆

    今まで見たもっともクソなテーブル設計 - 何か着ていればいいよ
    ku-kai27
    ku-kai27 2014/03/05
  • 衝撃的なデータベース理論・関手的データモデル 入門 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    デイヴィッド・スピヴァックによる衝撃的なデータベース理論である関手的データモデル。どうしたらうまく説明できるか? と色々と悩んでしまいますが、まー、書けるところから書き始めてしまいましょう。 さー、いらっしゃい、いらっしゃい。関手的データモデルの世界へようこそ。圏論の言葉は出てきますが、圏論の予備知識はほぼゼロでOKですよ。 [追記 date="翌日"]取り急ぎ勢いで書きましたので、不注意と早とちりが混じっていました。追記と取り消し線の形で訂正と注記を足しました。字句レベルの表現の変更は直接編集しています。 あとそれと、圏論の基用語を知りたいときはコチラ、… って、……、ゴメン![/追記] 内容: はじめに の購入のサンプル スキーマのグラフ表現 キーとか計算カラムとか 圏としてのスキーマ 関手としてのデータベース状態 テーブルの変化 自然変換としてのデータ操作 データベースに圏論が使

    衝撃的なデータベース理論・関手的データモデル 入門 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    ku-kai27
    ku-kai27 2013/02/12
  • データベース負荷テストツールまとめ(5) - SH2の日記

    というわけで、JPOUG> SET EVENTS 20120721 | Japan Oracle User Groupに参加して発表をしてきました。通常の勉強会と比べて発表者と聴講者の一体感を増すための工夫がなされていて、とても良かったと思います。有限コーヒーかと思ったら無限ビールだったのも驚きです。JPOUGの運営メンバのみなさま、会場を提供してくださった日オラクルのみなさま、当日お越しいただいたみなさま、どうもありがとうございました。 私のセッションでは、データベース負荷テストツールまとめ(5)と題して過去4回分のまとめと自作ツールの紹介をさせていただきました。JdbcRunnerはOracle DatabaseMySQLとPostgreSQLの間でTPC-BとTPC-Cの性能比較ができる唯一のオープンソースソフトウェアですので、いろいろ試してみていただければと思います。試した結果

    データベース負荷テストツールまとめ(5) - SH2の日記
    ku-kai27
    ku-kai27 2012/07/23
  • http://www.2ch-search.net/blog/3

  • DeNAによる大規模なMySQLノンストップ運用の裏側にある、フェイルオーバー自動化ツール

    4月11日から米サンタクララで行われた「MySQL Conference & Expo 2011」。このイベントでDeNAの松信嘉範(まつのぶよしのり)氏が、同社の大規模なMySQLの運用を支えている技術とツールについてのセッション「Automated, Non-Stop MySQL Operations and Failover」を行いました。 プレゼンテーションの中で、社内で利用しているフェイルオーバーの自動化ツールをオープンソース化することにも触れています(英語のドキュメントも作成中とのこと)。 MySQLの大規模運用における自動フェイルオーバーは、特にクラウドでのMySQLの利用が増えるにつれてニーズが高まる分野と思われます。セッションのスライドが公開されていますので、そのポイントを紹介していきます。 自動化されたノンストップなMySQLの運用 ソーシャルゲームでは高可用性が強く求

    DeNAによる大規模なMySQLノンストップ運用の裏側にある、フェイルオーバー自動化ツール
  • 「優れたMySQL DBAを見分ける27+3の質問」に対する回答例

    随分と更新が空いてしまったが、「優れたMySQL DBAを見分ける27+3の質問」に対する回答例(漢バージョン)を紹介しよう。実は質問を掲載した際「難しい!」というコメントが非常に多く、もう少し易しい質問にするべきだったかと思って次のように呟いてみたのだが・・・ 非常に心強くて安心した。さすがに日を代表するMySQLのエキスパートである。出題のレベルは間違ってはいなかった!! そんなわけで、回答の方に移ろう。 MySQLのサーバープロセスはいくつある?ひとつ。mysqldはシングルプロセス・マルチスレッドモデルを採用しているので、"サーバー"プロセスはひとつである。多くの場合、Linuxなどでmysqldを動かす場合には、お供にmysqld_safeも常に動いていることが多いが、mysqld_safeはサーバーではなく、mysqldのためのラッパーであるので数には含めない。 rootユー

    「優れたMySQL DBAを見分ける27+3の質問」に対する回答例
  • ソーシャルゲームのためのMySQL入門その2 | BLOG - DeNA Engineering

    こんにちはこんにちは。11インチMacBook Airが欲しくてたまらないiwanagaです。 前回の記事 が幸いにもご好評を頂けた様で非常にうれしいです。嬉しくなって、ついがんばって第2弾を書いてしまいました。引き続き、ソーシャルゲームでよく使われるテーブルタイプ毎にちょっとしたテクニックを紹介していきます。 今回はちょっとライトな感じ&読み物になってしまっていますが「ユーザID単位で1つだけ持つデータ」と「パラメータなどのマスターデータ」についてご説明したいと思います。ちなみに次回はInnoDBのデータ構造の簡単な説明と複合プライマリーキーのデータについて、その次で紹介し損ねたちょっとマニアックなテクニックや性能管理のための手法を紹介することを予定しています。 その前に。。。 先日行われた JAPAN INNOVATION LEADERS SUMMIT で弊社松信が「ソーシャルゲーム

    ソーシャルゲームのためのMySQL入門その2 | BLOG - DeNA Engineering
  • 8maki.jp

    This domain may be for sale!

    ku-kai27
    ku-kai27 2011/01/20
    開発記録
  • NoSQL 時代のデータモデル

    Masayoshi Hagiwara @masayh RDBMS対Hadoopという比較自体は適切ではない。正確には、RDBMSとHadoopにおける並列アルゴリズムやデータ管理技術の比較。すでにRDBMSのアルゴリズムはデータ管理技術は非RDBMS化していて、それはHadoopやその他のNoSQLにも適用可能となっている。 2010-11-05 14:09:34 Masayoshi Hagiwara @masayh たとえば、NoSQLでもスキーマや正規化の考え方を設計に取り入れた方がいいし、それを実装に入れて、現在のNoSQLの持つデータモデルの優位性を損なうことなく最適化することができるでしょう。 2010-11-05 14:12:20 Masayoshi Hagiwara @masayh 関係代数や関係論理といった技術的基盤をもっと参照して、現在のNoSQLやその他のデータ管理技術

    NoSQL 時代のデータモデル
    ku-kai27
    ku-kai27 2010/11/23
    No SQL
  • ソーシャルゲームのためのMySQL入門 | BLOG - DeNA Engineering

    こんにちはこんにちは。最近お腹痛いばっかり言ってることで有名なiwanagaです。 DeNAは外部的にはプラットフォーム的な部分の方がフィーチャーされることが多いですが、実はソーシャルゲームの提供も行っています。怪盗ロワイヤルとか、どこかで聞いたことがあるのではないでしょうか。 僕はDeNAでソーシャルゲームが誕生した辺りからずっとサーバサイドを見てきましたが、そんな運用の中で自分が貯めてきた知見とかTIPSをご紹介したいと思います。 かれこれ10タイトル近くはレビューしたり運用したりしてるため結構言いたいことはいっぱいあるので、小出しにしつつ評判よければ次も書きます。 ソーシャルゲームのためのMySQL入門一覧 ソーシャルゲームのためのMySQL入門 - Technology of DeNA ソーシャルゲームのためのMySQL入門2 - Technology of DeNA 「MySQL

    ソーシャルゲームのためのMySQL入門 | BLOG - DeNA Engineering
    ku-kai27
    ku-kai27 2010/11/16
    DateBase
  • ActiveRecordで行ロックをかける方法

    行ロックとは 行ロックとは、テーブルの同一レコードに対して、複数同時に更新できないように制限する仕組みのことです。 Ruby on RailsのActiveRecordには2種類のロック方法があります。 楽観的ロック(Rails依存) 悲観的ロック(DBMS依存) それぞれの違いや使い方について解説していきたいと思います。 楽観的ロック 楽観的ロックとは、DBMSの機能に頼らずロックバージョンをレコードに保存しておくことで、取得時と変更時にロックバージョンに変更がないか確認し、変更があった場合は例外を発生させる方法です。 ロックするタイミング データ更新時 データを複数同時に取得することができるが、途中で更新されていた場合は、更新できない 仕組み テーブルにlock_versionフィールドを追加する lock_versionが書き換わっていたらActiveRecord::StaleObj

    ActiveRecordで行ロックをかける方法
  • MySQLか、SQLiteか。それぞれのメリットとデメリット。 » とりあえず9JP

    MySQLのメリット ・SQLiteと比較して高機能なので、SQLiteでは使えない関数や手法が使える ・IDEとかで標準対応しているので、開発しやすい ・ネットに情報があふれているから情報集めに苦労しない ・洗練されたDB管理ツールphpMyAdmin が存在する。 (SQLiteにも複数の管理ツールが存在するけど、個人的に使い勝手が良いとは言い難い) ・公式のドキュメントが充実している ▼MySQLのデメリット ・仰々しいし重々しい ・個人的に、MySQLを使う=比較的大きなプログラムを組む時という認識があるので、何となくストレスを感じる ▼SQLiteのメリット ・PHP5以上?とApacheが動作する環境であれば動作するので、「どこのサーバで動かすー」とかそういった事を気にしなくて済む。 ・MySQLより軽快に動作する気がする ・個人的に、SQLiteを使う=小さい簡単なプログラ

  • File: README.rdoc [Sequel: The Database Toolkit for Ruby]

    Sequel is a lightweight database access toolkit for Ruby. Sequel provides thread safety, connection pooling and a concise DSL for constructing database queries and table schemas. Sequel also includes a lightweight but comprehensive ORM layer for mapping records to Ruby objects and handling associated records. Sequel supports advanced database features such as prepared statements, bound variables,

  • [Rails] query-reviewerでRailsアプリのボトルネックを見つける - 射撃しつつ前転 改

    query-reviewerはRails用のプラグインで、データベースにMySQLを使っている場合に、不適切な検索が行われていないかどうかを非常に簡単に調べることができる。(MySQL以外ではたぶん動かない。)使い方は非常に簡単で、 git clone git://github.com/dsboulder/query_reviewer.git vendor/plugins/query_reviewer  するだけ。設定等はまったくいらない。インストールすると、Railsアプリの左上に「SQL DISABLED」というボタンっぽいのが出てくるので、そこをクリックしてENABLEDに変えてからページにアクセスすると、SQLの実行結果を教えてくれる。 スクリーンショットは開発者のブログで見られる。 大体、以下のような情報が得られる。 SQL EXPLAINの結果 SQLの実行時間 どれだけのSQ

    [Rails] query-reviewerでRailsアプリのボトルネックを見つける - 射撃しつつ前転 改
  • NoSQLについて知っておくべき10の事柄

    TechRebublicに「10 things you should know about NoSQL databases」(NoSQLデータベースについて知っておくべき10の事柄)という記事が掲載されています。NoSQLデータベースについての現状がよくまとまっている内容でしたので、見出しとポイントをまとめて紹介したいと思います。 10の事柄は前半と後半の2つに分かれていて、前半の5つではNoSQLの利点について説明されており、後半の5つは課題について説明されています。原文はそれなりに長い説明がされているので、詳しくは原文をぜひ見てみてください。以下はそれを1行程度に要約したものです。 5つのNoSQLの利点 Five advantages of NoSQL 1:Elastic scaling (弾力性のあるスケーラビリティ) NoSQLデータベースでは、ノードの追加による拡張性に柔軟に対

    NoSQLについて知っておくべき10の事柄
  • はてなブログ | 無料ブログを作成しよう

    二郎は はま寿司の夢を見るか? 近所に はま寿司 ができた。 近所には ま寿司 ができた。に見えないように空白を入れなくてはいけない。 ここではきものをぬいでください。 ところでいきなり脱線しまくるのだが昔のゲームの「全部の文字を平仮名にした時に逆に解釈が広がってエモか感じる」みたいなの…

    はてなブログ | 無料ブログを作成しよう
  • BackupライブラリでプロジェクトのバックアップもD.R.Y化しよう

    はじめに こんにちは芳賀@func09です。 何かプロジェクトをリリースする時、必ずといっていいほど必要なのはデータの定期バックアップですね。 必ずといっていいほど必要なのに、必ずといっていいほど忘れがちで、後回しにされがちで、 リリース前に「あ、バックアップのバッチ処理書かなきゃ・・」みたいな感じで、毎回同じようなシェルスクリプトを書いてませんか?僕はそんな感じです。 バックアップだってD.R.Y(Don’t repeat yourself)ということで、サクっと労力をかけずに終わらせたいなぁと思っていた時に見つけたのがBackupという名前のGemです。そのまんまですね。 Backup(RubyGem)とは? Backup( http://github.com/meskyanichi/backup )はRubyで書かれたUnixとRails環境のためのライブラリです。 データベースの内

    BackupライブラリでプロジェクトのバックアップもD.R.Y化しよう
  • [Rails]ビューキャッシュにTokyoTyrantを使ってHTMLを高速に表示する

    はじめに 今回はRailsをTokyoTyrantでビューキャッシュする方法についてです。 Railsのキャッシュ機能には、オンメモリ、ファイル、drb、Memcacheから好きなストレージを選んで利用することができます。高速で永続性可能なKeyValueストアのTokyoTyrantをプロジェクトで採用することも多いので、ビューキャッシュにTokyoTyrantを使えないか試してみました。 TokyoTyrant http://fallabs.com/tokyotyrant/ TokyoTyrantのインストール TokyoTyrantがまだインストールされていない場合は、各環境に合った方法でインストールしてください。 Macの場合 % sudo port install tokyotyrant or … % brew install tokyotyrant CentOSの場合 % su

    [Rails]ビューキャッシュにTokyoTyrantを使ってHTMLを高速に表示する