SQLアンチパターン 26章「とりあえず削除フラグ」 2015/08/31 @ GMO Yours #ronsakucasual https://atnd.org/events/68902Read less
2. 0章 この資料について • この資料について • O’ReillyのSQLアンチパターン勉強会用のメンター用として作成 • 書籍と合わせて利用するための資料です • 個人の主観が大きく入っています • サンプルデータベースについて • SQLアンチパターン書籍中 xxi ~ xxiii 参照 • サンプルコード • http://www.oreilly.co.jp/books/9784873115894/ • bksqla-code.tgz • その他 • MySQLを前提に記載しています(Oracleも場合により) 3. 0章 はじめに • xviii 世の中のアンチパターンの多くにはユーモラスで刺激的なタイトルがつい ています。 • 「黄金のハンマー(Golden Hammer)」 • 「車輪の再発明(Reinventing the Wheel)」 • 「委員会による設計(Des
Bill Karwin “SQL Antipatterns: Avoiding the Pitfalls of Database Programming” の読書メモ。 Jaywalking 目的 ある属性について、複数の値を持たせる。 アンチパターン : カンマ区切りリスト カンマ区切りで複数の値を 1 つの列に納める。 例では、特定の製品についての担当者を複数設定するのにカンマ区切りで、担当者のアカウントIDを記述している。 create table products ( product_id integer, product_name varchar(1000), acount_id varchar(100), -- comma separated list -- ... ); insert into products (product_id, product_name, accou
SQLアンチパターン18章 インプリシットカラム(暗黙の列)では、SELECT,INSERT,UPDATEするときは、*(アスタリスク)を使わず、必要な列のみを列挙したほうが良い、といったことが書かれている。その理由については色々書かれているが、このエントリでは実行速度について考える。 検証内容について。同一長の列を二つ持つテーブルを作成し、1つはアスタリスク、1つは1列だけを指定するSELECT文を実行する。このとき、二つのクエリに速度差がどのくらい出るかを確認し、その理由について考える。 環境 Oracle Database Express Edition 11g Release 2をCentOS 6.4 x86_64上で動作 Oracle SQL Developer 3.2 SQL*Plus: Release 11.2.0.2.0 Production 準備 同一長の文字列型を二つ持
アンチパターンに名前を付けることで、コンテキストを共有できて議論がしやすくなる。2月14日、15日に都内で開催されたイベント「Developers Summit 2013」、通称デブサミにおいて、書籍「SQLアンチパターン」の監訳をした和田卓人氏は本書の意義をこう強調しました。 「SQLアンチパターン」は、データベースにおける設計からアプリケーションに関わるレイヤまで、開発者が陥りやすいミスや誤解に名前を付けたうえで原因と解決策を詳しく解説しています。 和田氏が指摘するように、これまでデータベースに関するデータ設計などのミスを指摘したり議論するには、その背景を共有するための面倒な説明が必要でした。SQLアンチパターンの登場は、そうした背景を暗黙のうちに共有する手段を与えてくれることになります。本書はデータベース分野の古典になる資格を十分に備えているのではないでしょうか。 書籍の監訳者自身が
SQLアンチパターンはMySQLがベースになっているのでPostgreSQLではそのまま動かない。とりあえずサンプルデータベースの変更ポイント。 BLOBをBYTEAに変更 UNSIGNGEDがないので省略 DATETIMEをTIMESTAMPに変更 テーブルを削除したい場合はDROP文をIF EXISTSオプションを付けて冒頭に書いておけばOK。 DROP TABLE IF EXISTS Accounts, BugStatus, Bugs, Comments, Screenshots, Tags, Products, BugsProducts; 修正後のSQLって公開してもいいのかな? id:t-wada さんに公開OKといただきました。 (追記)リポジトリ公開しました 写経しながらとなりますが、こちらのリポジトリにおいておきます。 https://bitbucket.org/shuji
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く