Builderscon 2017の登壇資料です https://builderscon.io/tokyo/2017/session/c8f36693-32aa-4bf1-816a-4966f3859926
![rdb antipattern refactoring](https://cdn-ak-scissors.b.st-hatena.com/image/square/069e3f58ac4ba3e757f7013f4bcfa1edd7c5872e/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F8f790f4885614abe913b879ed7d270b2%2Fslide_0.jpg%3F8381484)
理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL (WEB+DB PRESS plus) 作者:奥野 幹也技術評論社Amazon 積ん読に入っていたので読んだ。 この本はリレーショナルモデルを理解することによってRDBの知識を深めようというような本。RDBを実践で使っている人がさらに知識を深めるための本という感じ。内容としては重要な理論がRDBと紐付けられて解説されていて面白かった。一方で、専門用語が文章中に多く使われていて、個人的には何か頭に入ってこなかった点は残念だった。 この本を読みながらわからないところを調べていて見つけたのだけど、この本の著者の昔の発表資料である「データベース設計徹底指南!!」がこの本の端的なまとめになっていて、しかも非常に良い資料なので本当におすすめ。本で紹介されているリレーショナルモデルや正規化理論などがわずか15分程度で理解できる
ソリューションエンジニアチームに所属する筆者が、今では様々な手法が存在するレプリケーション機能について、改めて特徴や注意点を解説しつつ、レプリケーションのよくある「誤解」に対してもお答えしています。 このブログ記事では、MySQL(および Percona Server)環境におけるレプリケーション手法に関して改めて考察を行いたいと思います。あわせて、時折見受けられるレプリケーションの間違った考え方についても考えてみます。 私がソリューションエンジニアとして働き始めてからというもの、沢山の情報が公開されているにも関わらず、レプリケーションに対する「誤解」や「不完全な理解」が無くならないことを日々感じていました。 そもそもレプリケーションとは何か? レプリケーションは、1つのデータベースにデータを蓄積するだけでなく、別のデータベースにデータを複製し、転送することを保証してくれる機能です (複製
Products Popular View all products (200+) Azure Virtual Machines Azure Virtual Desktop Azure SQL Microsoft Copilot in Azure PREVIEW Azure AI Services Azure AI Studio Azure Cosmos DB Azure Kubernetes Service (AKS) Azure Arc Azure Migrate AI + machine learning Azure Machine Learning Azure AI Services Microsoft Copilot in Azure PREVIEW Azure OpenAI Service Azure AI Studio Azure AI Vision Azure AI Se
僕がrubocopに送ったPRが v0.47.0 に取り込まれました。 個人的に便利機能だと思うのでこの場を借りて軽く紹介したいと思います。 Rails/ReversibleMigrationについて 具体例 どうして作ったか? 検出精度について auto correctについて Cop開発Tips 前提知識 rubocop静的解析したいソースをruby-parseでS式を出す binding.pryなどでとめてnodeの中身を確認 S式にマッチさせるmatcherを書く Rails/ReversibleMigrationについて Railsのmigrationファイルで change メソッドの中に書いたmigrationコマンドがreversible *1かどうかをチェックするためのcopです github.com 具体例 https://github.com/bbatsov/rail
ここに書くことによって途中でやめられなくするメソッドです。 ハッカーニュースを眺めていたら以下のようなCS系講義動画のまとめリポジトリが流れていました。 GitHub - Developer-Y/cs-video-courses: List of Computer Science courses with video lectures. へーっと思いながら何個かポチってみたところ以下に出くわしました。 15721.courses.cs.cmu.edu 英語が(自分にとって)聞き取りやすく、動画の品質(画質やスライドがちゃんと見えるかどうかといった部分)も良いものでかつ興味のある内容で出来ればスライドもおしゃれで・・・となるとなかなか少ないですが、これはかなり見やすいです。 スライドも概念図が頻繁に登場したりして、これだけでも聞き取れなかった部分などをかなり補完できます。 スケジュールページ
LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog saegusa2017-04-16Yoshihiro was a network engineer at LINE, responsible for all levels of LINE's infrastructure. Since being named Infra Platform Department manager, he is finding ways to apply LINE's technology and business goals to the platform. こんにちは。LINEでネットワークやデータセンターを担当している三枝です。2017年1月にJANOG39で登壇する機会を頂きましたので、今回
MySQLのCLI(コマンドラインインターフェイス)を利用しているとおなじみの mysql> というプロンプトがあるが、実はこれは変更が可能である。MySQL CLIを利用している最中なら、promptコマンドを実行すれば良い。例えば次のように。 mysql> prompt \U [\d] >\_ PROMPT set to '\U [\d] >\_' mikiya@localhost [test] > \Uや\dはそれぞれ意味が決まっていて、それらを組み合わせることで任意の情報をプロンプトに表示できるわけである。見易いように > やスペース、括弧などを組み合わせるといいだろう。例えば何かの作業をするときには mysql> prompt 作業1 [\D]>\_ PROMPT set to '作業1 [\D]>\_' 作業1 [Tue Mar 17 07:39:28 2009]> などとする
RailsのMigrationの基本的なことから、カラム追加/削除、インデックス追加、NULL制約、カラム名変更などのレシピ集をまとめました。 動作確認 Rails 4.1 目次 1. Migrationの基礎 1.1. migrationファイルの作成 1.2. マイグレートの実施 rake db:migrateコマンド 1.3. マイグレートの適用状況確認 rake db:migrate:statusコマンド 1.4. データの投入 rake db:seedコマンド 1.5. マイグレーションで使えるデータ型一覧 2. Migrationのレシピ集 2.1. カラムの追加(add_column) 2.2. カラムの削除(remove_column) 2.3. データ型の変更(change_column) 2.4. インデックスやユニーク制約の追加/削除(add_index/remove
このエントリは Classi Advent Calendar 2016 8日目の記事です。 そういえばいまだに転職エントリーを書いていませんが7月に転職をしていましてClassiのファースト社員となりました 💪 複数DB on Rails Classiではセキュリティやら何やらの関係でみんな大好き複数DB on Railsになっています。 R/W Splittingやシャーディングではなく、1つの共通DBとテナント毎のDBがあるマルチテナンシー(?)構成です。 class User < ActiveRecord::Base has_many :entries # (共通DBへの接続情報) end class Entry < ActiveRecord::Base belongs_to :user # (テナントDBへの接続情報) end User.connection # => 共通DBの
毎度おなじみ、はてブのホットエントリに「SIをダメにする負のスパイラル」というタイトルのまとめが掲載された。きしだ氏とはかなり視点は違うものの、開発現場の問題点については少し思うところがあるので意見を書いてみようと思う。と言っても、以下の話の内容はデータベースアプリケーションに限定した話であり、またSIerだけに限った話ではないのでその点はご容赦頂きたい。もちろんSIer各位の案件はデータベースは必須なので、本エントリで触れる問題点には該当するだろう。 Q.なぜ炎上するのか? A.正しいデータベース設計ができていないから結論から言おう。データベースアプリケーションの開発が炎上するのは正しいデータベース設計ができていないからだ。ここでいう「正しい」とは、論理的に証明できる正しさという意味ではない。「本来こうするべき」といった意味で捉えて欲しい。 「炎上」というのは、例えばテストが通らない、バ
インフラストラクチャー部の成田(@mirakui)です。 Rails の OR マッパーである ActiveRecord ですが、みなさんどのように運用していますか? ActiveRecord を使うと、 SQL を直接扱うことなく、抽象化された表現で RDB にアクセスできるので、アプリケーションの開発効率という観点ではメリットが大きいです。 一方で、 ActiveRecord が駆使されているアプリケーションをサーバに配置してプロダクションとして運用する立場からすると、いくつかの問題に突き当たります。 まずはクックパッド本体アプリケーションにおける、最新の rake stats をご覧ください。 +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC
Rails で STI(Single Table Inheritance)を使った時の、コントローラの実装をどうするか?という事について書いてみたいと思います。 STI(単一テーブル継承)とは オブジェクト指向の基本概念として、あるクラスを元にサブクラスを定義する継承があります。 この継承は、プログラミング言語ですとと予め機能が提供されていることが多いですが、 RDB ですとテーブル構成によって表現する場合があります。 *1 今回使う STI は、一つのテーブル内に継承関係にあるクラスのカラムを全て持ってしまう方法です。 例として Player クラスを継承した Footballer クラスと Cricketer クラスがあるとします。 親クラスに共通のプロパティ、子クラスがそれぞれのプロパティを持っていますが、これを STI で表現すると以下になります。 テーブルのレコードがどちらの型に
bulletとは、N+1問題や使われていないEager Loadingを発見するためのツールです。 これらの問題があると無駄なSQLクエリが実行されるので、パフォーマンスを落としてしまいます。 気をつけていてもN+1問題は発生してしまう可能性があるので、bulletを導入して自動で発見できるようにしてみます。 ※ N+1問題やEager Loadingについてよくわからない方は、N+1問題 / Eager Loading とはを参照ください。 確認環境 Ruby 2.1.2 Rails 4.1 bullet 4.14.0 目次 Railsプロジェクトの作成 Bulletのインストール方法 Bulletのホワイトリストの設定 Bulletをテストで実行 1. Railsプロジェクトの作成まずはRailsプロジェクトを作成します。 rails new bullet_test cd bullet
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く