ScalaでのJDBCによるDB操作の勉強をした - $shibayu36->blog; の続き。今回はHikariCP を利用して、DBのコネクションプールをScalaで利用してみたのでメモ。DBにはPostgreSQLを利用した。 依存の追加 build.sbtに以下を追加。 libraryDependencies += "org.postgresql" % "postgresql" % "42.1.4" libraryDependencies += "com.zaxxer" % "HikariCP" % "2.7.1" 単純にDB接続してみる https://github.com/brettwooldridge/HikariCP#initialization や https://jyn.jp/java-hikaricp-mysql-sqlite/ あたりを参考にした。 とりあえず接続
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オプションで指
システム開発ではデータベースを使うことが多いです。開発のはじまった段階でしっかりしたER図を作っている場合、開発が進んでいる中で生じた仕様変更を常にドキュメントに反映していかなければなりません。これは大きなコストです。 そこで使ってみたいのがSchemaSpyです。SchemaSpyは現在のデータベーススキーマを取得してドキュメントを生成してくれるソフトウェアです。 SchemaSpyの使い方 生成された内容です。テーブル一覧。 カラム。 リレーションは分かりやすく可視化されます。 さらに改善すべきポイントなど。 SchemaSpyを使えばER図を作ったりする手間なく、既存のスキーマから必要なドキュメントが生成できるようになります。きちんと設計を行っているならば、実際に動いているものは正確なドキュメントになるでしょう。作る手間もないのでお勧めです。 SchemaSpyはJava製のオープン
Javaの国内最大カンファレンス、JJUG CCC 2017 springで登壇してきました。 僕の中で先週のオープンセミナー岡山の熱がまだ収まらぬ中の登壇だったのですが、多くの方に聴いていただけて嬉しかったです! その時の資料がこちら。 RDBアンチパターンについてはPHPカンファレンスやYAPC:Kansaiでも話をしましたが、今回は別バージョンです。 soudai1025.blogspot.jp soudai.hatenablog.com あのときはWeb系の人向けに話をしましたが、今回はエンタープライズな業務系の人向けです。 業務系は僕の印象では制約だったり、RDBの機能を有効活用してる印象があるのですが、逆に過剰になっていることが多い印象があります。 また論理IDなどデータ量が少なかったり、アプリの改修が少ないから死ななかっただけの設計も多く見られる印象です。 そういう点を今回お
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 最近,時代遅れのDB論理設計の流れが取りざたされている.そのため,私にDBの知識は無いが,DB利用反対を表明しようと思い,今回投稿する. 4ステップで作成する、DB論理設計の手順とチェックポイントまとめ - Qiita まず,いかにDBの知識が無いかをさらそうと思う. 以下の4ステップとして無知であることを説明する. ステップ1:エンティティとは ステップ2:エンティティの何を定義するのか ステップ3:正規化とはうまいのか ステップ4:ER図とは新たなビデオゲームか 無知をさらすためだけの投稿により,まとめは当然無い.ポイントをまとめる
gopli - DB replication tool to synchronize data with multi environments written in Golang. ツールの名前はgopli (go replication)で、意図どおりの名前ですね。 これは何tomlで書いた、ssh/db接続用の設定ファイルを元に、特定の環境間でデータを同期させるツールです。今の所MySQLのみ対応で、postgresqlに対応しろと言われたものの、なかなか手が回っていない状況です。 使い方は簡単で、 まず以下のように、 sshでのサーバーへの接続と、MySQLへの接続設定をtomlで書きます。 [database] [database.local] host = "localhost" management_system = "mysql" name = "app_developmen
集中型から分散型のDBへ、クラウドの真の力を引き出す Part1 [単体RDBの限界]遅い、スケールしない 処理量が増大すると、単体RDBMSがシステムのボトルネックになりがちだ。応答性を確保するには、集中型から分散型のDBへの移行が欠かせない。それにより、クラウドのポテンシャルを最大限に引き出せるようになる。 いつしか、業務アプリが時代遅れの産物に成り下がっている―。 GoogleやAmazon、Facebookをはじめとする、人気あるWebサービスはキビキビ動き、心地よく使える。例えば、入力中の検索キーワードの候補を表示するGoogleサジェスト機能。文字を入力するたびに逐次検索が実施され、瞬時に結果が示される。入力文字が多少誤っていても構わない。 一方、業務システム。比べ物にならないほど、動作が遅い。例えば、部署名から部署コードを探すシーン。何文字か入力後、検索ボタンを押して1~2秒
ここに書くことによって途中でやめられなくするメソッドです。 ハッカーニュースを眺めていたら以下のようなCS系講義動画のまとめリポジトリが流れていました。 GitHub - Developer-Y/cs-video-courses: List of Computer Science courses with video lectures. へーっと思いながら何個かポチってみたところ以下に出くわしました。 15721.courses.cs.cmu.edu 英語が(自分にとって)聞き取りやすく、動画の品質(画質やスライドがちゃんと見えるかどうかといった部分)も良いものでかつ興味のある内容で出来ればスライドもおしゃれで・・・となるとなかなか少ないですが、これはかなり見やすいです。 スライドも概念図が頻繁に登場したりして、これだけでも聞き取れなかった部分などをかなり補完できます。 スケジュールページ
ナイーブツリー(Naive Trees, 素朴な木) どういうこと? 【したいコト】 階層(ツリー状)構造をテーブルに格納します。階層構造の代表例には、組織図や掲示板のスレッドなどがあります。 【やらかしたコト】 自分の親を格納する列を用意します。この列は、自分のテーブルに外部キーを設定します。このような設計を「隣接リスト(Adjacency List)」とも呼びます。 どうしてヤル? 隣接リストは、階層的なデータの格納に用いられる、最も一般的な設計です。 どうしてダメ? 階層の検索がやりにくい 階層の深さに制限のないSQLが書けません。 アプリケーション側に任せるしかありませんが、パフォーマンスに問題が発生します。 階層のメンテナンスがやりにくい サブツリー全体を削除する場合、すべての子孫を特定するために複数回クエリを実行し、最下層から順番に子孫を削除する必要があります。この順番を守らな
以前の記事で、テーブルに「スタンプ属性」をいちいち載せるのは惰性的習慣ではないかと書いたが、似たものに「論理削除フラグ」がある。各テーブルにいちいちこれが置かれているDBを見ることがあるが、それもまた惰性の結末ではないか。スタンプ属性だろうが論理削除フラグだろうが、必要ならば置くべきだし、必要でないなら置くべきではない。ただし、多くのケースで必要なのは「論理削除」ではなく「無効化」であることは知っておいたほうがいい。 削除のややこしさは、他テーブルとの関係にある。まず、通常の削除(物理削除)について見よう。テーブルAと参照関係にあるテーブルBがあるとする(図1)。ここで、テーブルA上のレコード①が、テーブルB上のレコード③と④によって結合(参照)されているとすれば、①を削除することは許されない。もし削除してしまえば、存在しないAレコードを結合するBレコードの存在を許してしまう。典型的な更新
9/25(金)に社内Oracleのチューニングコンテスト決勝戦が開催されました。 チューニングコンテストのルールは予算10万円でマシンを構築し、予選でTPC-Cのnumber of warehouses=1,sessio=20を規定時間以内に終了させれば決勝進出という内容で、決勝戦はTPC-Hのscale factor=10,session=4の実行終了までの時間を競いました。 細かなチューニングをせずに勝負に挑み2位という結果でした。 その要因の1つがマシンスペックの差によるものです。 これはCPU,メモリ,マザーボードをオーバークロック向きの構成でまとめたことが大きかったように思います。 そしてもう1つの要因となったのがOSでした。 OSを選択する上でこだわったのはシンプルであるということです。 いろいろ検討する中で見つけたのはがArch LinuxというLinuxのディストリビューシ
1. なぜ、いまなぜ、いま リレーショナルモデルリレーショナルモデル なのかなのか 奥野 幹也 Twitter: @nippondanji mikiya (dot) okuno (at) gmail (dot) com @ 理論から学ぶデータベース 実践入門 Night 3. 自己紹介 ● MySQL サポートエンジニア – 日々のしごと ● トラブルシューティング全般 ● Q&A 回答 ● パフォーマンスチューニング など ● ライフワーク – 自由なソフトウェアの普及 ● オープンソースではない ● GPL 万歳!! – 最近はまってる趣味はリカンベントに乗ること ● ブログ – 漢のコンピュータ道 – http://nippondanji.blogspot.com/
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く