タグ

DBに関するwiz7のブックマーク (13)

  • データベースを遅くするための8つの方法

    はじめに Twitterのタイムラインを見ていたらバッチ系のプログラムで逐次コミットをやめて一括コミットにしたら爆速になったというのを見ました。当たり前でしょ、と思ったけど確かに知らなければ分からないよね、と思って主に初心者向けにRDBを扱うときの注意点をまとめてみました。 プログラミングテクニック的なところからテーブル設計くらいの範疇でDBチューニングとかは入ってないです。 自分の経験的にOracleをベースに書いていますが、他のRDBでも特に変わらないレベルの粒度だと思います。 大量の逐次コミットをする バッチアプリケーションでDBにデータをインサートすると言うのはかなり一般的な処理です。しかしデータ量が少ない時はともかく大量のインサートを逐次コミットで処理するとめちゃくちゃ遅くなります。数倍から十数倍遅くなることもあるので、10分程度のバッチが1時間越えに化けることもザラにあるので原

    データベースを遅くするための8つの方法
  • SQL記述者全員が理解すべきSELECT文の論理的な処理順序のお話 - Qiita

    2020/9/30追記 記事は元々、「SQL記述者全員が理解すべきSELECT文の実行順序のお話」というタイトルで投稿しておりました。 しかし、知見のある方からのコメントと自分でも調べてみた結果、今回紹介している順序はあくまで論理的な処理順序であり、実行順序とは別物ということがわかりました。 誤った知識を布教してしまい申し訳ございません。 2020/9/30のタイミングで、記事のタイトルを「SQL記述者全員が理解すべきSELECT文の論理的な処理順序のお話」に変更させていただきました。 はじめに 「SQLといえば、エンジニアが扱うスキル」と思われがちですが、最近はマーケターや営業など、非エンジニアの方もSQLを使って、自らデータを抽出し分析する方が増えてきています。 またエンジニアの方でも、ORM任せでなんとなく理解している状態の方もいるのではないでしょうか? 今回は、そんな方々にこそ

    SQL記述者全員が理解すべきSELECT文の論理的な処理順序のお話 - Qiita
    wiz7
    wiz7 2020/09/22
  • Webシステムにおけるデータベース接続アーキテクチャ概論 - ゆううきブログ

    先月投稿した2015年Webサーバアーキテクチャ序論では、Webサーバアーキテクチャを学ぶ道のりと代表的な実装モデルの概要を紹介しました。 今回は、前回同様、主に新卒Webエンジニア向けに、Webアプリケーションサーバとデータベースサーバ間の接続管理モデルと運用事情について紹介します。 データベース接続の永続化やコネクションプーリングとは何なのか、なぜ必要なのかといったことが主な話題です。 背景 データベース接続の永続化とはなにか データベース接続のオーバヘッド データベース接続の永続化手法 コネクションプーリングとはなにか コネクションプーリング: ドライバ型 コネクションプーリング: プロキシ型 コネクションプーリング全体について PostgreSQLMySQL 参考資料 まとめ 背景 2015年Webサーバアーキテクチャ序論では、Webサーバアーキテクチャの話とWebアプリケーショ

    Webシステムにおけるデータベース接続アーキテクチャ概論 - ゆううきブログ
    wiz7
    wiz7 2018/11/05
    コネクションプール周り、他
  • SQLアンチパターン 幻の第26章「とりあえず削除フラグ」

    SQLアンチパターン 26章「とりあえず削除フラグ」 2015/08/31 @ GMO Yours #ronsakucasual https://atnd.org/events/68902Read less

    SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
    wiz7
    wiz7 2018/09/01
    つい最近不具合起こしたからよくわかわる。状態として管理するのがまずは直感的かな
  • 20時間で準備する、忙しい人のためのデータベーススペシャリスト試験対策 #情報処理試験 - log4ketancho

    ※ 2019年12月に最新情報にアップデートしました。 最近、情報処理試験(高度試験)の対策についてお客さんと話す機会がありました。なんとなくやっていた勉強方法を言語化でき、非常に楽しかったです。この記事では、その時に話したデータベーススペシャリスト試験の準備について紹介したいと思います。 私の勉強法ですが、 元々、業務などでベースとなる知識があるんだけど、 直前(2週間〜1ヶ月前あたり)まで勉強ができなかった方が、 試験でしっかり実力を発揮するための準備を20時間で行いつつ、 できれば業務にも繋がるといいなー という方法になります。 「何もしないまま試験まで1ヶ月切ってる。。。」という(私のような)方が、20時間だけ勉強すれば、足切りにかからず普段の実力勝負に持ち込めるはず、ということをこの記事で紹介できればと思います。 想定読者 SQLを使ったデータアクセス、あるいは、テーブル設計経験

    20時間で準備する、忙しい人のためのデータベーススペシャリスト試験対策 #情報処理試験 - log4ketancho
    wiz7
    wiz7 2018/07/30
  • [MySQL][Python]8000万レコードをInsertする | Momentum

    概要 ・とある物件で8000万弱のレコードを新規のDBに効率的にぶち込む方法を考える必要に ・MySQL(Amazon RDS) + Python(mysql.connector)を想定 ・mysql.connector + pythonについては拙文ながら(http://nekopuni.holy.jp/?p=927)に書いております。 ・コミットの位置には気をつけよう + Multiple Insert最強ねというお話。 方法その1 まずは最初にやった方法。1レコードごとにInsertしてコミットしていく方法。 今までDB関連でやったコードはレコード量も大したことなかったので以下の方法でも特に問題なかった。 具体的な環境としてはテキストデータ(csv)を読み込み、それをDBにInsertしていくというもの。 csvの中身は日付(DATE)とデータ値(VALUE)がカンマ区切りになってい

    wiz7
    wiz7 2018/03/20
    “Multiple Insert最強”
  • Amazon Auroraの先進性を誰も解説してくれないから解説する - Qiita

    TL;DR; Amazon AuroraはIn-Memory DBでもなくDisk-Oriented DBでもなく、In-KVS DBとでも呼ぶべき新地平に立っている。 その斬新さたるやマスターのメインメモリはキャッシュでありながらWrite-BackでもなくWrite-Throughでもないという驚天動地。 ついでに従来のチェックポイント処理も不要になったのでスループットも向上した。 詳細が気になる人はこの記事をチェキ! Amazon AuroraAWSの中で利用可能なマネージド(=運用をAWSが面倒見てくれる)なデータベースサービス。 ユーザーからはただのMySQL、もしくはPostgreSQLとして扱う事ができるのでそれらに依存する既存のアプリケーション資産をそのまま利用する事ができて、落ちたら再起動したりセキュリティパッチをダウンタイムなしで(!?)適用したりなどなどセールストー

    Amazon Auroraの先進性を誰も解説してくれないから解説する - Qiita
    wiz7
    wiz7 2017/12/13
    ただの効率のいいMy sqlかと思ってた、後で読む
  • DockerでサクッとDBからER図を作成する - Qiita

    SchemaSpyというDBのスキーマを解析してテーブルの一覧やER図を出力してくれるツールがあります。 このツールの公式Dockerイメージが公開されており、非常に使いやすいので紹介させて頂きます。 https://hub.docker.com/r/schemaspy/schemaspy/ コマンド docker run -v "$PWD/schema:/output" --net="host" schemaspy/schemaspy:snapshot \ -t <DB種類> -host <DBホスト名/IP>:<ポート> -db <DB名> -u <DBユーザー名> -p <DBパスワード> このコマンドを実行するとカレントディレクトリのschemaディレクトリに解析結果のHTMLが出力されます。 (コンテナは自動的に終了します) docker run のオプション -vオプションで指

    DockerでサクッとDBからER図を作成する - Qiita
  • DB論理設計のノウハウ - Qiita

    DB設計の概要を簡単におさらいした後、論理設計について主にまとめていきます。 DB設計の全体手順のおさらい DB設計は、大きく論理設計と物理設計に分けられます。 概念スキーマを定義します。 エンティティの抽出 エンティティの定義 正規化 ER図の作成 物理設計 論理設計の結果を受けて、データを格納するための物理的な領域や格納方法を決めます。 テーブル定義 インデックス定義 ハードウェアのサイジング ストレージの冗長構成決定 ファイルの物理配置決定 テーブルの構成要素のおさらい 行と列 行(レコード):横のデータの組 列(カラム):縦のデータの組 キー キーとは、DBのテーブルから特定のデータを引き出すための鍵です。 主キー:その値を指定すれば、必ず一行のレコードを特定できるような列の組み合わせのこと。一意にレコードを識別するためにある 外部キー:2つのデーブル間の列同士で設定するもの。参照

    DB論理設計のノウハウ - Qiita
  • Amazon DynamoDB Accelerator(DAX) – Read heavyなワークロード向けインメモリ型キャッシュクラスタ | Amazon Web Services

    Amazon Web Services ブログ Amazon DynamoDB Accelerator(DAX) – Read heavyなワークロード向けインメモリ型キャッシュクラスタ 既にAmazon DynamoDBの事はご存知の方が多いと思います。ご存じのように、必要なだけのテーブルスペース、読み込み容量、書き込み容量に対応できるように拡張されたフルマネージドのNoSQLデータベースです。応答時間は1桁のミリ秒単位で測定され、多くのお客様がadtech、IoT、ゲーム、メディア、オンライン学習、旅行、電子商取引、金融など、さまざまな種類のアプリケーションにDynamoDBを使用しています。一部のお客様では一つのDynamoDBテーブルに100TB以上のデータを格納し、1秒当たり何百万もの読み取りまたは書き込み要求を行います。 Amazonの小売サイトはDynamoDBに依存しており

    Amazon DynamoDB Accelerator(DAX) – Read heavyなワークロード向けインメモリ型キャッシュクラスタ | Amazon Web Services
    wiz7
    wiz7 2017/04/28
    あれ?ただのDynamoってインメモリ型じゃなかったのか……勘違いしてた。DAXの料金体系はどうなってるのか、要確認
  • テーブル削除と削除の取り消し - オラクル・Oracle SQL 入門

    DROP TABLE、FLASHBACK TABLE テーブル定義の削除と復活 もし作成したテーブルを誤って作成した場合や不要になった場合に以下のとおりに実行する。 USER_MASTER 表を削除 SQL*Plus にて以下の DDL 文を実行。 DROP TABLE USER_MASTER CASCADE CONSTRAINTS ; なお Oracle10g から「ごみ箱」の機能が追加され DROP TABLE =取り返しのつかない削除ではない。(※) 従来通り、ごみ箱に入れず即座に削除する場合は PURGE 句を付ける DROP TABLE USER_MASTER CASCADE CONSTRAINTS PURGE ; (※) 但し SYSTEM 表領域 に表を作成していた場合には即座に削除されるので例外。(Oracle 10g 時点) 補足:SYS やSYSTEM ユーザーのデフォ

    wiz7
    wiz7 2016/09/02
  • 環境構築不要!初心者でも楽しく入門できるプログラミング学習サイト【paizaラーニング】

    paizaラーニングは、オンラインでプログラミングしながらスキルアップできる、プログラミング入門学習コンテンツです。

    環境構築不要!初心者でも楽しく入門できるプログラミング学習サイト【paizaラーニング】
    wiz7
    wiz7 2016/08/23
    普通に面白そう。新人の頃にこんなのがあればなぁ…。非エンジニアの人にもいいかも。
  • OTN Japan - 404 Error

    wiz7
    wiz7 2016/08/04
    SQL Plus利用してインポート、エクスポート
  • 1