SQLインジェクションを・・・駆逐してやる!! この世から・・・一匹残らず!! (PHPカンファレンス2015)
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のプログラミングは奥が深い。特にパフォーマンスの観点から、そう言えるだろう。 みなさんご承知の通り、同じ結果を出すプログラムでも、SQLの書き方次第で処理時間に何倍もの差が生じ得る。効率の悪いSQLを書いてしまう原因は、多くの場合、リレーショナルデータベースの内部動作やアプリケーションに関する理解不足である。両者をよく知った上で最適なSQLを書けるようになることは、システムエンジニアとしての重要なスキルの一つである。 特集『基礎から理解するデータベースのしくみ』では、リレーショナルデータベースの内部動作について、基本的な部分を分かりやすく解説している。SQLプログラミングに役立つことはもちろん、SQLチューニングやデータベース設計のための基礎知識としても不可欠だ。 イントロダクション ブラックボックスのままでいいの? Part 1:SQL文はどのように実行されるのか SQL実行までの
結論 SQLがどーのデータの持ち方がこーのというアプリ開発側の話題がメインのDB勉強会をやりたいからやるよという話 以下補足 コンテンツ アプリ開発者がDBを握らなければならない時代 DBを握るということ 勉強会について アプリ開発者がDBを握らなければならない時代 データ爆発の時代 データ爆発の時代がくると言われて久しいです。扱うデータの量が増えてきているだけでなく、データの構造も多種多様になってきていると感じています。これまではOne Size Fits AllでRDBが対応してきたのが、増加し複雑化していくデータにRDBのみでは対応しきれなくなってきている為にNoSQLのようなプロダクトが盛んに開発され利用されています。 アプリ開発者としてやるべきこと そういった時代を迎えるにあたって、アプリ開発者は何も備えなくていいんでしょうか?DBはインフラ/サーバーエンジニアのもの? 僕は「D
MySQL に限らず、SQL のNULL の仕様には何回か「えっ」と驚くことがあったのでメモしておこうと思います。5.1 版の日本語マニュアルがなかったものについては、4.1 のマニュアルを参照しました。 そもそもNULL は何を意味するか NULL は未定義または、不明を意味する。「電話番号を持たない」ということを表現する場合は、NULL ではなく、空の文字列を使う。 NULL 値というものを SQL 初心者はよく混乱します。SQL 初心者は、多くの場合、NULL が空文字 "" と同じであると考えてしまいます。これは違います。たとえば、以下のステートメントは完全に別のものです。 mysql> INSERT INTO my_table (phone) VALUES (NULL); mysql> INSERT INTO my_table (phone) VALUES (""); どちらのス
10 sql tips to speed up your database プログラム内のデータベース処理高速化TIPSが10個紹介されているエントリのご紹介です。 SQLが適切に設計されていないとすぐにデータベース処理がCPUを圧迫してしまいますので可能な限り知っておきたいですね。 基本的な事から応用的な事まで参考になりそうだったのでメモ程度にご紹介。 explainでインデックスが使われているかを調べる 最も速いクエリは、クエリを発行しないこと、ということでデータをキャッシュしよう Memcached, CSQL Cache, AdoDB などでそれが可能 必要じゃないモノをselect しないようにする select * from table; ↓ select id from table; limit を使って取得する結果を少なくする foreach ループなどの中でsqlクエリを
「データベースはブラックボックス。どんなSQL文を投げたらどんな結果が返ってくるかさえ知っていればよい」---そう思っている人も多いかもしれません。 しかし,本物のソフトウエア・エンジニアを目指すのであれば,データベースが動く仕組みを学ぶことは避けて通れません。パフォーマンスなどに問題が生じたときどこから手を付けていいのか皆目見当がつかない,といった事態に陥りかねません。 市販のRDBMSの内部はかなり複雑ですが,基本的な部分を理解するのはそれほど難しくありません。この特集でデータベースの動く仕組みを理解してください。 イントロ ●ブラックボックスのままでいいの? 基礎から理解するデータベースのしくみ(1) Part1 ●SQL文はどのように実行されるのか 基礎から理解するデータベースのしくみ(2) 基礎から理解するデータベースのしくみ(3) 基礎から理解するデータベースのしくみ(4) 基
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く