タグ

SQLに関するy_maeyamaのブックマーク (15)

  • 変更履歴を持つテーブルの設計 - Qiita

    ある日のできごと 少し前、「ブログの記事のようなものを、履歴を残しつつ編集できるようにするにはどのようなテーブル設計が良いか?」と尋ねられたことがありました. その時, まず思いついた(というか見聞きしたことがある方法)のは以下の様な2通りの方法だった. 記事テーブルにバージョン番号を持たせる方法 記事テーブルとは別に, だいたい同じ構造の履歴テーブルを持つ方法 こられの手法のメリット・デメリットについて, すこし考えていきたいと思います. その1 記事テーブルにバージョン番号を持たせる方法 概要 この方法では, 記事テーブルは一つだけ用意し, 更新される度に新しいレコードを追加していきます. 主キーはidとなるが, これはサロゲートキーで, 当の主キーは「記事グループid + verison」の複合主キーとなっています. 記事の最終更新日時は, 最新Versionのレコードのinser

    変更履歴を持つテーブルの設計 - Qiita
  • 分析SQLのコーディングスタイル - クックパッド開発者ブログ

    SQL、書いてますか? こと大規模データ処理の分野においてはSQLはもはや標準インターフェイスであり、 分析やらバッチやらに関わっている皆様は日々大量のSQLクエリーを生産していることと思います。 そこでちょっと気になるのが、 SQLのコーディングスタイルってどうするのが一般的なんだっけ……? という点です。 イマドキはSQLなんてO/R mapperに吐かせることが多いからなのか、 それともコードを広い範囲で共有することがそもそもないからか、 SQLのコーディングスタイルについて見聞きすることは他のプログラミング言語に比べるとだいぶ少なく、 いまいち決定版と言えるスタイルがないなと感じています。 そんなわけで日は、SQLのコーディングスタイルについての意識を活発化させるべく、 クックパッドでわたし(青木)が使っているコーディングスタイルから特徴的な点を紹介したいと思います。 特に、分析

    分析SQLのコーディングスタイル - クックパッド開発者ブログ
  • RDB - 実例で学ぶ、JOIN (NLJ) が遅くなる理屈と対処法 - Qiita

    "Nested Loop Joinしか取り上げて無いのにタイトルが大きすぎないか" と指摘を頂いたので、タイトルを修正しました。Merge JoinとHash Joinのことはまた今度書こうと思います。 「JOINは遅い」とよく言われます。特にRDBを使い始めて間がない内にそういう言説に触れた結果「JOIN=悪」という認識で固定化されてしまっている人も多いように感じています。 たしかに、JOINを含むようなSELECT文は、含まないものに比べて重たくなる傾向があることは事実です。また、質的に問い合わせたい内容が複雑で、対処することが難しいものも存在します。しかし、RDBの中で一体どういうことが起きているのかを知り、それに基いて対処すれば高速化できることも少なくないと考えています。 稿では、JOINの内部動作を解説した上で、Webサービスを作っているとよく出てくるJOIN SQLを例題に

    RDB - 実例で学ぶ、JOIN (NLJ) が遅くなる理屈と対処法 - Qiita
  • クリアネオの口コミって信じていい?効果は確実なの? | 愛と小町

    クリアネオの特徴 無添加・無着色だから肌が弱い人でも安心 ワキガや嫌な臭いの原因となる菌を殺菌・消毒 お得な定期コースは、購入縛りなし!いつでも解約可能 体臭の悩みは老若男女問わず共通の悩みですが、他人には相談しにくいので1人で悩んでいる人が多いんです。 体臭って、自分でニオイが気になった時は、他の人はもっとクサイと思っています。 もしあなたが、自分でワキガかも…と思うのであれば、周りの人はあなたのニオイに気づいているかも… クリアネオは、そんなワキガ臭や足のニオイなど、イヤーな体臭全般を10秒でカットしてくれるんです。 クリアネオの効果や口コミを調査しましたので徹底解説します。 購入時に特典が付いてくるのでお得 公式サイトはコチラ ※特典は毎月変わるので公式サイトでご確認ください クリアネオはどんな人におすすめ? クリアネオの殺菌率は、なんと99.999%!体臭の悩みを解消してくれるクリ

  • いぞるで雑記annex mysqlのtimestamp型を使って更新日時と生成日時の両方を記録する

    mysqlのtimestamp型は他の主なRDBMSと違って勝手に値を格納するらしい。 あと、DEFAULT値にnow()のような関数を使うことも出来ないっぽい。 その代わりにといってはアレだけどON UPDATE CURRENT_TIMESTAMPのような属性が使えるので、更新日時のような値を保持するにはもってこいの型みたい。 で、今回やりたかったのはひとつのテーブルに modified_date と create_date のような2つのtimestamp型のカラムを作って、更新日時とデータを最初に作った日の両方を管理する方法。 スキーマはこんな感じで定義しておく CREATE TABLE `test` ( id int(4) unsigned NOT NULL auto_increment, name varchar(10) , . . 略 . . modified_date tim

  • コマンドによるMySQL管理テクニック

    コマンド操作の応用 外部ファイルによるバッチ処理 多くのフィールド定義を持つテーブルを作成する場合や、バッチ処理のように大量のINSERT文を発行したい場合には、mysqlプロンプトでは少々面倒です。1つ間違えば、もう1度データベースをDROPし、あらためてCREATEした後、もう1度テーブルの定義文を打ち直すことになります。 こんなときは、ファイルに保存しておいたものをリダイレクトできないかと考えます。例えば、テーブルの定義文を下記のように“temp.sql”というファイル名で保存してあったとします。

    コマンドによるMySQL管理テクニック
  • QA@IT サービス終了のお知らせ - @IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    QA@IT サービス終了のお知らせ - @IT
  • クリティカルなデータを安全に更新する方法 - Architect's Log

    既に運用されているシステムのデータの手修正は絶対にミスが許されない作業です。今回はそんな状況でも安全にデータを変更する方法を紹介します。 クエリ 変更のクエリと変更確認のクエリを書きます。そして最後にロールバックします。 BEGIN TRAN SELECT Age AS CurrentAge FROM Customer WHERE Name = 'Nakamura' UPDATE Customer SET Age = 21 WHERE Name = 'Nakamura' SELECT Age AS UpdatedAge FROM Customer WHERE Name = 'Nakamura' ROLLBACK 試行 変更後の結果を目視し、問題ないことを確認します。 変更 最後のROLLBACKをCOMMITに変えて、再度クエリを実行します。 これで安全にデータを変更することができます。

    クリティカルなデータを安全に更新する方法 - Architect's Log
  • SQL Code Formatter

    Click HERE to view desktop version/add-in version for ssms/vs of SQL Pretty Printer. Click HERE to try FREE ONLINE SQL beautifier, also known as Instant SQL Formatter. Instant SQL Formatter is a free online sql tidy tool, actually, it not only can beautify your sql but also can turn your formatted sql into html code, so you can post coloured sql code in your blog, forum,wiki and any website easily

    y_maeyama
    y_maeyama 2012/03/12
    SQL文を自動整形してくれるWebサービス
  • SQL Syntax Highlighting - Visual Studio Marketplace

    Adds basic SQL syntax highlighting (keywords, functions and variables) to string literals. This Visual Studio 2010 extension adds basic SQL syntax highlighting (keywords, functions and variables) to string literals. Currently the following keywords are supported: select, insert, delete, update, into, values, truncate, distinct, top, with, from, join, inner join, outer join, left outer join, right

    y_maeyama
    y_maeyama 2012/03/12
    SQLをハイライトするVisual Studio拡張
  • 連載 「Webブラウザで気軽に学ぶ実践SQL講座」 - @IT

    SQLとはどういう言語か Webブラウザで気軽に学ぶ実践SQL講座(1) SQLを学ぶために、PCRDBMSをインストールするのは面倒。この連載ではWebブラウザだけでSQLを試せる環境を利用する

    y_maeyama
    y_maeyama 2012/01/05
    環境構築しないで気軽に試せるならうれしいかも
  • Microsoft Azure: クラウド コンピューティング サービス

    Azure を探索 Azure について 安全かつ将来を見据えた、オンプレミス、ハイブリッド、マルチクラウド、エッジのクラウド ソリューションについて調べる グローバル インフラストラクチャ 他のどのプロバイダーよりも多くのリージョンを備える持続可能で信頼できるクラウド インフラストラクチャについての詳細情報 クラウドの経済性 Azure の財務上および技術的に重要なガイダンスを利用して、クラウドのビジネス ケースを作成する 顧客イネーブルメント 実績のあるツール、ガイダンス、リソースを使用して、クラウド移行の明確なパスを計画する お客様事例 成功を収めたあらゆる規模と業界の企業によるイノベーションの例を参照する

  • SQL Serverのインデックス設計基準

    RDBMSのボトルネックは99%ディスクI/Oにある。CPUや物理メモリに比べて、ハードディスクの速度はかなり遅い。気が遠くなるぐらい遅い。インデックスを効果的に設計すれば劇的にディスクI/Oコストを減らすことができる。 インデックスって何だ?まず簡単に基礎知識。インデックスには、クラスタ化インデックスと非クラスタ化インデックスがある。 大雑把に言えば、クラスタ化インデックスとはレコードデータ自体のディスク上での順序を表す。だから、テーブル毎に一つしか作れない。クラスタ化インデックスの順序が隣接しているという事は、データが物理的に隣接されてディスクに格納されているという事である。 SQL Serverは、データを「ページ」という概念で格納する。I/Oは全てこの8KBのページが最小単位である。レコードをたった一行取得する場合でもページ毎に読み出される。クラスタ化インデックスの順序が近いデータ

    SQL Serverのインデックス設計基準
  • IPA-安全なウェブサイトの作り方2021年改訂第7版.pdf

  • データベースの内部動作を知る

    SQLのプログラミングは奥が深い。特にパフォーマンスの観点から、そう言えるだろう。 みなさんご承知の通り、同じ結果を出すプログラムでも、SQLの書き方次第で処理時間に何倍もの差が生じ得る。効率の悪いSQLを書いてしまう原因は、多くの場合、リレーショナルデータベースの内部動作やアプリケーションに関する理解不足である。両者をよく知った上で最適なSQLを書けるようになることは、システムエンジニアとしての重要なスキルの一つである。 特集『基礎から理解するデータベースのしくみ』では、リレーショナルデータベースの内部動作について、基的な部分を分かりやすく解説している。SQLプログラミングに役立つことはもちろん、SQLチューニングやデータベース設計のための基礎知識としても不可欠だ。 イントロダクション ブラックボックスのままでいいの? Part 1:SQL文はどのように実行されるのか SQL実行までの

    データベースの内部動作を知る
  • 1