並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 1061件

新着順 人気順

RDBMSの検索結果1 - 40 件 / 1061件

  • リレーショナル・データベースの世界

    序文 私の仕事は、DBエンジニアです。といっても別に望んでデータベースの世界へきたわけではなく、当初、私はこの分野が面白くありませんでした。「Web系は花形、データベースは日陰」という言葉も囁かれていました。今でも囁かれているかもしれません。 ですが、しばらくデータベースを触っているうちに、私はこの世界にとても興味深いテーマが多くあることを知りました。なぜもっと早く気づかなかったのか、後悔することしきりです。 もちろん、自分の不明が最大の原因ですが、この世界に足を踏み入れた当時、先生も、導きの書となる入門書もなかったことも事実です。 今でこそバイブルと仰ぐ『プログラマのためのSQL 第2版』も新入社員には敷居が高すぎました (2015年2月追記:その後、自分で第4版を訳出できたのだから、 人生は何があるか分からないものです)。 そこで、です。このサイトの目的は、データベースの世界に足を踏み

    • 社内SQL研修のために作った資料を公開します | 株式会社AI Shift

      こんにちは、Development Teamの三宅です。 先日、社内(AI事業本部内)でSQL研修の講師を担当したので、今回はその内容について簡単に共有したいと思います。 はじめに 例年、AI事業本部では、新卒エンジニアの育成のためにソフトウェアエンジニア研修を行っております。今年はフルリモートでの実施となりました。研修期間は2週間ほどで、内容は前半が講義、後半が実践(チーム開発)でした。私が担当したのは、講義パートの一部であるSQL研修です。SQLやRDBにあまり慣れていない人でも、できるだけ体系的な学びが得られるようにすることを目標に、様々な資料をまとめて提供する方針で準備しました。結果的には、ハンズオン込みで4時間ほどのやや長い講義となりましたが、勉強になったという声も頂けたのでやって良かったと思っています。 研修資料 研修内容 SQL研修の内容は、基本的には大学のデータベース講義で

        社内SQL研修のために作った資料を公開します | 株式会社AI Shift
      • プログラミングスクールなんか行かなくていいからこれやれ

        いちいち行かなくていい。高いわりに役に立たない。本を買ったりネットの解説動画を見ながら自分でやるんだ。 毎日勉強できるならカリキュラムはこう。大事なのは「わかんなかったら自分で調べる」ということ。これをひとつひとつ解説していくとあっという間に1年ぐらいのカリキュラムになって金がかかるようになる。ググれば全部出てくる。出てこなかったら調べ方が悪いのでググりかたを変えればおk。この記事にも初心者から見ると「なにその言葉。初耳」っていうのがあると思うけど、全部重要なキーワードなのでググって咀嚼して血肉としてほしい。ググればすぐ出てくる。 1日目: Linuxのインストール(Linuxの中でもUbuntuっていうのがおすすめ)とりあえずLinuxを自分のパソコンにインストールする。Linuxを触れるようになればいい。 PCがない場合は、中古のPCなんて3万ぐらいで買えるからそれ買ってきてインストー

          プログラミングスクールなんか行かなくていいからこれやれ
        • 1000万件オーバーのレコードのデータをカジュアルに扱うための心構え - joker1007’s diary

          自分が所属している会社のメンバーの教育用資料として、それなりの規模のデータを扱う時に前提として意識しておかなければいけないことをざっくりまとめたので、弊社特有の話は除外して公開用に整理してみました。 大規模データ処理、分散処理に慣れている人にとっては今更改めて言うことじゃないだろ、みたいな話ばかりだと思いますが、急激にデータスケールが増大してしまったりすると環境に開発者の意識が追い付かないこともあるかと思います。 そういったケースで参考にできるかもしれません。 弊社は基本的にAWSによって運用されているので、AWSを前提にした様なキーワードやサービス名が出てきます。後、句読点があったり無かったりしますが、ご容赦ください。 追記: 社内用の資料の編集なのでかなりハイコンテキストな内容だから誤解するかもしれませんが、これらはそもそもRDBの話ではありません。(関係無くは無いけど) 1000万オ

            1000万件オーバーのレコードのデータをカジュアルに扱うための心構え - joker1007’s diary
          • データベースを遅くするための8つの方法

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

              データベースを遅くするための8つの方法
            • GWの休みに勉強しよう!!!有名IT企業の研修資料まとめ - Qiita

              勉強について エンジニアの皆さん。エンジニア以外の皆さん。 ・勉強しようと思っているけど、何を勉強したらいいかわからない ・ネットを漁っても良質な教材が出てこない ・他人がどんなことをしているか気になる こんなお悩みありませんか? 今回は、有名企業の研修資料をまとめましたので、勉強のネタにしてみてはいかがでしょうか? 新人、ベテラン関係ありません! GWに暇を持て余したら、こちらをご覧くださいね サイボウズ サイボウズです。 22年度の内容が公開されていました。 ■モバイルアプリ開発 ■サイボウズのアジャイル・クオリティ ■MySQL - テストデータが偏るということ ■モブに早く慣れたい人のためのガイド ■テクニカルライティングの基本 ■ソフトウェアテスト ■セキュリティ ■ソフトウェアライセンス 講義資料と講義動画まで公開されています。 資料が苦手な人でも学習が捗りますね。 ラクス こ

                GWの休みに勉強しよう!!!有名IT企業の研修資料まとめ - Qiita
              • プログラミング言語の入門が終わったら何の勉強をすればいいの? - きしだのHatena

                JJUG CCC 2022 Fallで「Javaの入門が終わったら何の勉強をすればいいの?」という内容で発表を行いました。 基本的なものが作れるようになったけども、イマイチプログラムが組めないというときに、何を勉強すればいいかをまとめました。 入門が終わって作りたいものがあれば作っていきましょう、業務で言われたものが作って行こう、でもなんだかちゃんとしたものが作れないな、もっとちゃんとしたものを作りたい、次のステップに進みたいというときに勉強していく感じです。 資料はこちらです とりあげた本についてまとめておきます。 開発作業について 概要 プログラミング言語 アーキテクチャ ミドルウェア ネットワーク デプロイ 理論 開発手法 開発プロセス まとめ フレームワークは入門でやってる前提です。Java入門書「プロになるJava」ではJavaの基本から簡単なDB操作、Spring Bootまで

                  プログラミング言語の入門が終わったら何の勉強をすればいいの? - きしだのHatena
                • SQL記述者全員が理解すべきSELECT文の論理的な処理順序のお話 - Qiita

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

                    SQL記述者全員が理解すべきSELECT文の論理的な処理順序のお話 - Qiita
                  • ダイソーが6年でIT内製化、マイクロサービス化、サーバレスに成功した理由

                    大創産業は1972年、家庭用品を販売する商店として創業された。今やよく知られた『100円SHOPダイソー』を運営する事業者である。ダイソーの展開に着手したのは1987年。2019年には国内3367店舗を数え、海外ではアジア、北米を中心に28の国、地域で2175店舗を構えるほどのグローバル展開を果たしている。 キッチン用品や文具、衣服やコスメ、食品やガーデン用品など、幅広い商品展開もダイソーの魅力の一つだ。商品数は7万点を超え、売れ筋の電池は1秒間に5本、ネクタイも15秒に1本、“つけまつげ”は1.3秒に1つ売れる勢いとのことだ。 取り扱う商品が多く、また尋常ではない速度で売れていくことは、それだけデータ管理の難しさが増すということでもある。アイティメディアが2019年9月17日に開催した「ITmedia DX Summit 2019年秋・ITインフラ編」に登壇した大創産業 情報システム部

                      ダイソーが6年でIT内製化、マイクロサービス化、サーバレスに成功した理由
                    • SQLの実行計画の読み方 |

                      今回は、SQLを書く上で特にパフォーマンスに影響のあるSQLの実行計画の読み方について解説します。実行計画はデータベース製品によってさまざまに差異がありますが、ここでは比較的どのデータベース製品でも共通する内容について解説します。 実行計画とは記述したSQLが実際にデータベースの内部でどのように処理されて結果を返すか、その処理方法を記述した情報です。 A5:SQL Mk-2では、SQLエディタで実行計画を見たい SQL の上にキャレットがある状態でメニューから [SQL(S)] – [SQLの実行計画(J)] または、Ctrl+E で表示できます。 表示の仕方はデータベース製品ごとに異なりますが、多くのデータベース製品ではツリー状の情報として表現されます。(このため A5:SQL Mk-2でもツリービューで実行計画を表示します。) ツリーのリーフ(端)から処理が行われ、ルート(根)に向かっ

                      • データベース設計の際に気をつけていること - 食べチョク開発者ブログ

                        皆さんこんにちは、エンジニアの西尾です。 新しい機能・サービスを開発する際、私は特にデータベース設計に気をつかいます。 データベースはシステムの土台です。 土台が不安定だと、その上に積み上げていくアプリケーションコードがいびつなものになり、つらい思いをします。 また、一度動き出してしまったシステムのデータベース設計を変えるのは、容易なことではありません。 データベース設計には”これだ!”という正解はないと思っています。 サービスの特徴、システムの性質、toB向け/toC向け、Readが多い・少ない、Writeが多い・少ない。 その他もろもろの背景により、データベース設計の仕方も変わってきます。 このテーブルは正規化していないから駄目だ、この設計はいわゆるポリモーフィック関連だから使ってはいけない、などということはありません。 アンチパターンと呼ばれるものも時と場合によっては正解になります。

                          データベース設計の際に気をつけていること - 食べチョク開発者ブログ
                        • 決済システムの残高管理周りの DB 設計と戦略 - カンムテックブログ

                          エンジニアの佐野です。今日はカンムの決済システムでユーザの残高管理をどうやっているかについて書きます。 カンムの製品であるバンドルカードはプリペイド方式のカードです。ユーザによる入金、店舗での利用、運営事由の操作などによりユーザの残高が増減します。このような残高の管理について単純に考えると user_id と balance と updated_at あたりをもったテーブルを用意して balance と updated_at を更新していく方法があるかもしれません。しかしながらカンムでは残高を管理するテーブルを持たず、これらイベントの履歴のみで残高を管理しています。以下、本記事ではこれらユーザの残高が増減するイベントのことをトランザクションと呼びます。ここでは DB の Transaction Processing を意味しません。 本記事のポイントは 残高を管理をするテーブルは作らず、ト

                            決済システムの残高管理周りの DB 設計と戦略 - カンムテックブログ
                          • RDBのデータモデリング・テーブル設計の際に参考にしている考え方と資料

                            はじめに タイトルのとおり、RDBのデータモデリング・テーブル設計を行う際に参考にしている考え方と関連資料をまとめました。 P.S. なんと本記事内でいくつか参考として挙げさせてもらっている増田さん・かとじゅんさん・奥野さん・そーだいさんからコメントいただくことができました。 本当にありがとうございます。 前提 RDBを採用するのは事実を無駄なく正しく記録するため 正規化、トランザクション、制約とデータ整合性 基本的には始めに理想として集合論・リレーショナルモデルに基づいて正規化を考え(論理設計)、パフォーマンスなどの現実問題に対して折り合いをつけていく(物理設計) 制約を最大限利用する cf: ↑P91〜 ↑P.29,41 ↑P56〜 ↑5章 ↑P347~ 情報とデータ データ:単なる事実の値→これを永続化して蓄えるものがRDB 情報:データから生み出される意味や目的のあるもの→RDBか

                              RDBのデータモデリング・テーブル設計の際に参考にしている考え方と資料
                            • 検索が爆速になるデータベース設計を公開します

                              こんにちは。エンジニアの谷井です。 フォルシアでは、Spookと呼んでいる技術基盤を用いて、主に旅行業界やMRO業界に対して、膨大で複雑なデータを高速検索できるアプリケーションを提供しています。 今回はその高速検索のノウハウのうち、特にDBの扱いに関連する部分について、ベテランエンジニアへのインタビューを通してそのエッセンスをまとめてみました。 一般的なベストプラクティスだけでなく、検索性能を高めることに特化しためずらしいアプローチもあるので、ぜひご覧ください。 フォルシアにおける検索DBについて まず前提としてフォルシアで扱うデータについて軽く説明します。 扱うデータの複雑さ たとえば、旅行会社向けのアプリケーションであれば、宿泊素材の情報としては ホテルの情報「〇〇ホテル」(~約2万件) プランの情報「朝食付き・ロングステイ△△プラン」(0~1500件/施設) 客室の情報(~100件/

                                検索が爆速になるデータベース設計を公開します
                              • データベース設計におけるNULL - kawasima

                                NULL絶対ダメ論や現実的には無理だから上手く付き合っていくしかないんだよ論など見られるが、せっかくCodd博士が上図の分類を提示しておられるので、これを元にもっと詳細化して考えてみよう。

                                  データベース設計におけるNULL - kawasima
                                • 2020年現在のNewSQLについて - Qiita

                                  Disclaimer 当記事はNewSQL開発ベンダの技術ブログや各種論文、その他ニュースサイト等の内容を個人的にまとめたものです。 そのため、理解不足等に起因する誤解・誤認を含む可能性があります。更なる理解が必要な方はリファレンスに挙げた各種文献を直接参照下さい。技術的な指摘は可能であれば取り込み修正しますが、迅速な対応はお約束できません。 NewSQLの解説は二部構成 当記事は前編でNewSQLの概要編となる。 全体の目次は下記である。 NewSQLとは何か NewSQLのアーキテクチャ NewSQLとこれまでのデータベースの比較 NewSQLのコンポーネント詳解 1章から3章までの内容を当記事で解説する。 4章はさらに詳細な技術的解説となり、後編の「NewSQLのコンポーネント詳解」で記述している。 こちらも合わせて一読いただきたい。 1. NewSQLとは何か NewSQLとは、海

                                    2020年現在のNewSQLについて - Qiita
                                  • 2020 年、 React 軸で学ぶべき技術 - mizchi's blog

                                    なぜ仮想 DOM という概念が俺達の魂を震えさせるのか - Qiita から 5 年経ち、 仮想 DOM を備えた React やそれを採用した Vue や他のライブラリも市民権を得たように思います。 有用な技術が市民権を得る、というのはエコシステムが花開くことでもあります。新しいプロダクトを作る際の技術選定において、 TypeScript + React が常に正解というわけではないですが、このスタックはかなり強力だという手応えがあります。 このスタックは得意のウェブフロントエンドは勿論、それ以外もとりあえず 80 点ぐらいの品質でプロトタイピングできる、というようなエコシステムになってきたような肌感があります。 モダンフロントエンドだと TypeScript と Webpack は採用しているのを前提として、本記事では React を軸にその技術を活かすために、次の 6 個の技術を紹介

                                      2020 年、 React 軸で学ぶべき技術 - mizchi's blog
                                    • 技術選定/アーキテクチャ設計で後悔しないためのガイドライン - Qiita

                                      はじめに 本稿は、ソフトウェア開発を進める際に直面する様々な技術的な意思決定やライブラリ・フレームワーク・XaaS等を選択し正しく活用していくのかについての考え方をサポートすることを目的としています。「すべてにおいてこのようなワークフローを通じて検討すべきである」という主張ではありません。読者の抱える問題領域に応じて、必要な箇所を取捨選択するための1種の考え方を提供するものです。 そもそもアーキテクチャ・技術選定に時間をかけるべきか まず第一に伝えておきたいことは、技術選定やアーキテクチャ設計に常に慎重であるべきではないということです。ソフトウェアの規模やライフサイクルに応じて、そもそも時間をさく必要がないということも多くあります。書き捨てのシェルスクリプトにも読みやすいコードを求めて書くことは非常に重要ですが、だからといって組織だって議論・検討するようなものでもないのです。一方で、5年も

                                        技術選定/アーキテクチャ設計で後悔しないためのガイドライン - Qiita
                                      • 本当にあったやらかしDB設計シリーズ一覧 - Qiita

                                        本当にあったやらかしDB設計シリーズをまとめてみました SQLアンチパターンで書かれているほど高尚な問題ではなく、もっと初歩的な、でもありがちな問題を取り上げています 初心者を脱出したと思っている人に是非読んでもらい、正しく設計してもらうことを目的としています もしここに載っていないパターンを経験したことのある方がいたら是非教えてください 本当にあったやらかしDB設計①【R無しRDB】 本当にあったやらかしDB設計②【囚人番号テーブル】 本当にあったやらかしDB設計③【ロジカルクエリー】 本当にあったやらかしDB設計④【テストチューニング】 本当にあったやらかしDB設計⑤【第三正規化病】 本当にあったやらかしDB設計⑥【見えない削除フラグ】 本当にあったやらかしDB設計⑦【ステートフルDB】 本当にあったやらかしDB設計⑧【ファンクションDB】 本当にあったやらかしDB設計⑨【文字列日付】

                                          本当にあったやらかしDB設計シリーズ一覧 - Qiita
                                        • テーブル設計の考え方とやり方 [入門編]

                                          「基本から学ぶテーブル設計 超入門!」 https://modeling-how-to-learn.connpass.com/event/242944/ の発表資料。 - 2つの設計スタイルの違いを理解する - 何を記録するか(資源・活動・当事者・規程) - どう記録するか(テーブルの役割…

                                            テーブル設計の考え方とやり方 [入門編]
                                          • データベースを勉強したいあなたに送る技術書17冊(+11冊1講義7link)

                                            これはなに ども、レバテック開発部のもりたです。最近めっちゃ元気!! 今回は『データベースについて勉強したいあなたに送る技術書17冊(+11冊1講義7link)』として、もりたがここ半年くらいでわーっと集めたデータベース周りの書籍(とか)を紹介していきます。アプリケーションって結局はデータベースみたいなところがあると思うんですが、おれは長いことデータベースをどう学んだら良いのか分かりませんでした。同じような気持ちを抱えているITエンジニアの人もいると思うので、学習ロードマップと合わせて紹介していきます。 なお具体的な対象読者は業務でなんとなくSQL書いてるけど、ウィンドウ関数とか言われると分からんな……くらいの人です。 扱う領域と扱わない領域 扱う領域としてはだいたい以下 再入門本 SQL 内部構造 論理設計 周辺知識 データベース理論 その他高度なもの モデリング、NoSQL、分散データ

                                              データベースを勉強したいあなたに送る技術書17冊(+11冊1講義7link)
                                            • Google、ORMが生成するSQLが遅いときの調査を容易にする「sqlcommenter」をオープンソースで公開。Rails、Spring、Djangoなど主要なフレームワークに対応

                                              Google、ORMが生成するSQLが遅いときの調査を容易にする「sqlcommenter」をオープンソースで公開。Rails、Spring、Djangoなど主要なフレームワークに対応 SQL文を直接書かなくとも、自動的にSQL文を生成、実行してくれるORM(Object-Relational Mapper)は、プログラミングを容易にしてくれる技術としてRailsやHibernate、Springなどさまざまなフレームワークなどで活用されています。 一方で、ORMが生成するSQL文はときに複雑に、あるいは非効率なものとなり、データベース処理の遅さにつながることもあります。 このとき、SQL文の生成と実行を明示的にコードとして記述する必要がないというORMの特徴が、なぜデータベース処理が遅くなったのか、どのようなSQL文が生成され、そのどこに原因があるのか、といった調査を難しくている面があり

                                                Google、ORMが生成するSQLが遅いときの調査を容易にする「sqlcommenter」をオープンソースで公開。Rails、Spring、Djangoなど主要なフレームワークに対応
                                              • メルカリを退職してロンドンのMetaに転職します 〜 外資Big Tech転職活動体験記|松岡玲音|note

                                                この度、3年半に渡って勤めたメルカリを2022年5月に退職し、この夏からロンドンのMetaにSenior Machine Learning Engineerとして転職することが決まりました!わいわい✌('ω')。その過程で、東京およびロンドンのBig Tech合計5社を数ヶ月かけて対策をし面接に臨んだので、そこで得たノウハウをここで共有できたらと思います。面接を受ける際にNDA(Non Disclosure Agreement)にサインするので具体的な面接の詳細には触れられませんが、伝えられる範囲でできる限り記述しています。 また、Metaから最終的に提示されたオファー条件を最後に記載してあります。なにぶん日本においては給与の話は燃えやすいということもあり、その部分だけ某日本の有名エンジニアに倣って有料にしてあるのですが、ご興味のある方は是非ご購入いただければと思います(1コイン分の金額で

                                                  メルカリを退職してロンドンのMetaに転職します 〜 外資Big Tech転職活動体験記|松岡玲音|note
                                                • 【個人開発】爆速な賃貸物件の検索サービスを作った - Qiita

                                                  個人開発で 賃貸物件の検索サービス Comfy を作りました1。グラフや地図でサクサク絞り込める UI が特徴のサービスです。とにかく気持ち良い使い勝手を実現するために色々工夫しています。 既にリリースからは 4 ヶ月以上経っているのですが、改めてサービスの概要や、システム構成及び使用した技術・サービスをご紹介しようと思います。2。 サービスの概要 Comfy は日本全国の賃貸物件を検索できる Web サービス です。画面 UI は上の GIF 画像のような感じです。 こだわったポイントを色々書くよりも実際にさわって頂いた方が新感覚の UI や気持ちよさを体感頂けるかと思いますので、 実際のサービス をぜひお試し頂ければ幸いです! システム構成 図の通り、システムは大きく 3 つに分けられます。 フロントエンド バックエンド データ基盤 使用技術は図の通りではあるのですが、フロントエンドと

                                                    【個人開発】爆速な賃貸物件の検索サービスを作った - Qiita
                                                  • 実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial

                                                    - PostgreSQLカンファレンス 2021 - チュートリアル - https://www.postgresql.jp/jpug-pgcon2021 - 詳細はこちら https://github.com/soudai/pgcon21j-tutorial

                                                      実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
                                                    • websec-room.com - websec room リソースおよび情報

                                                      This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

                                                        websec-room.com - websec room リソースおよび情報
                                                      • SIerで幸せな技術キャリアを築くために - Qiita

                                                        この記事はNTTコムウェア Advent Calendar 2021 20日目の記事です。 NTTコムウェアの古西です。AI・データサイエンス推進室で技術マネージャをしています。 システムインテグレーター、略してSIerは、顧客のためにITシステムやサービス・ソリューション・プロダクトを開発・運用する会社です。一部自社サービスがあるものの、特定の顧客企業に対してシステムを提供することが多いです。 ネット上では「SIerはオワコン」1と言われることもありますが、私自身は入社のときに「人と技術を仲介する仕事がしたい」と言って仕事をしはじめてから約25年間、SIerで顧客や自社の人と技術を仲介する仕事をしてきました。私がこれまでの経験から「SIerで幸せな技術キャリア」を築くために意識したほうがいいと思うことを、若年層とベテラン層にわけて3つずつ、書いておこうと思います。 若年層(20代~30代

                                                          SIerで幸せな技術キャリアを築くために - Qiita
                                                        • UTF-8のテーブル(MySQL5.6)に竈門禰󠄀豆子が格納できない問題を調べてみた - Qiita

                                                          竈門禰󠄀豆子をMySQL5.6のテーブルにinsertしようとすると正しく格納できず、竈門禰となってしまうケースがあるという話を聞き、調べてみました。 実践 まずは試しにやってみます。 mysql> show create table verification\G *************************** 1. row *************************** Table: verification Create Table: CREATE TABLE `verification` ( `name` varchar(100) COLLATE utf8_bin DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin 1 row in set (0.01 sec) mysql> inse

                                                            UTF-8のテーブル(MySQL5.6)に竈門禰󠄀豆子が格納できない問題を調べてみた - Qiita
                                                          • 無料で学ぶ『達人に学ぶSQL徹底指南書 第1版』 - Qiita

                                                            はじめに 『達人に学ぶSQL徹底指南書 第1版』は、CodeZine連載とミック氏ウェブサイトの掲載記事をもとに、加筆・編集されたものです。 CodeZine連載、および、ミック氏ウェブサイトは、どちらもオンラインの無料公開コンテンツです。 今回、「書籍と元コンテンツの対応表」を作成しました。 書籍のために書き下ろされた一部コンテンツや演習問題は見れませんが、その一方、編集で割愛された内容などが含まれるので、書籍以上のことを学べる箇所もあります。 すでに新版『達人に学ぶSQL徹底指南書 第2版』が出ていますが、各テーマは第1版でも大きく変わっておらず、現在でも通用する基本的で面白い内容なので、一見の価値はあると思います。 書籍と元コンテンツの対応表 No. 目次 CodeZine連載 ミック氏ウェブサイト テーブル定義 サポートページ

                                                              無料で学ぶ『達人に学ぶSQL徹底指南書 第1版』 - Qiita
                                                            • 実践データベース設計

                                                              2024年度リクルート エンジニアコース新人研修の講義資料です

                                                                実践データベース設計
                                                              • 銀行の基幹系システムはなぜ古臭いのか?|つっちーさん

                                                                タイトル詐欺である。今回も反省せずに続きといきたい。 前回も示したが、ざっくりとした銀行の基幹系システムは「勘定系」「情報系」「チャネル系」の三つの構成になっているという図が上である。ざっくりとしたものなので、実際にはもっと複雑(特にメガバンクでは)だし、これがあるのにアレがない、とかいったものはある。細かいところを気にしすぎると禿げるぞ。 今回は、銀行の基幹系がなぜ古臭いのかという話をしたい。古臭いと言ってもいろいろあって、特にエンジニア界隈からは「メインフレームを使ってる」とか「COBOLみたいなカビの生えた古代言語を使ってる」とか、とにかくイケてないシステムの代表例のように言われることが多い。対して、預金者の側からはネットとの親和性だとかサービス面の不満からくるイケてないという話が多いと思うのだが、これはどちらかというとシステムの話ではなくて、サービス設計とかその背景になるビジネスモ

                                                                  銀行の基幹系システムはなぜ古臭いのか?|つっちーさん
                                                                • 100万件ぐらいのレコードを扱ったらOOMEが出た話。 - 谷本 心 in せろ部屋

                                                                  要約 技術的な話だけ教えて、という方のために先に結論だけ書いておきますと、PostgreSQLはクエリを実行した時点で全レコードの情報を一気に読んできてヒープを埋めてしまう場合がある、ということ話です。 たとえば、ResultSet#nextメソッドを使いながら処理を回すようなコードを書いて、少ないヒープでも処理できるようにするのは常套手段だと思いますが、そういうコードを書いていても一気にヒープを消費してしまうことがあるのです。詳しくはこのドキュメントを見てください。 https://jdbc.postgresql.org/documentation/head/query.html#query-with-cursor ことの発端 ちょっと仕事でJava + jOOQ + PostgreSQLで、DBのデータを集計するようなバッチ処理を書いてまして、もちろん俺様の書いたコードにバグなんてある

                                                                    100万件ぐらいのレコードを扱ったらOOMEが出た話。 - 谷本 心 in せろ部屋
                                                                  • ゼロから作る時系列データベースエンジン

                                                                    軽量な時系列データベースエンジンをスクラッチで開発する機会があったので、どのように実装したのかを必要知識の解説を交えながらまとめていきます。 実装はGo言語によるものですが、本記事のほとんどは言語非依存な内容となっています。 モチベーション 筆者は時系列データを扱うツールをいくつか開発しています。その中の一つであるAliは負荷テスト用のcliツールで、メトリクスをクライアント側でリアルタイム描画できるのが特徴です。リクエスト毎にレイテンシーなどの計測結果が際限なく書き込まれてくる中、同時に一定のクエリパフォーマンスが求められます。 これは言ってしまえば、簡易クエリ機能付きのpush型モニタリングシステムを単一ホストで実現するようなものです。 以前までの実装ではヒープ上の可変長配列にデータポイントを追加していくだけだったので、当然ながら時間の経過とともにメモリ使用量が増加していく問題を抱えて

                                                                      ゼロから作る時系列データベースエンジン
                                                                    • 「トランザクション張っておけば大丈夫」と思ってませんか? バグの温床になる、よくある実装パターン

                                                                      この記事は DeNA 20 新卒 Advent Calendar 2020 19日目の記事です。 はじめに MySQLやPostgreSQLに代表されるRDBMSではトランザクションと呼ばれる仕組みが提供されています。多くのWebアプリケーションエンジニアはこのトランザクションを駆使してDBとやりとりをするロジックを組み立てることになります。 しかし不整合を起こしたくない処理があるからといって闇雲にトランザクションを張ったり、トランザクションが張られているからと安心してアプリケーション側で闇雲にロジックを組み立ててしまうと思わぬバグを生むことになってしまいます。 このエントリでは、「トランザクションを張っておけば大丈夫」という考え方は危険な場合もあるということを、ありがちな実装例を交えて紹介していきます。 並列に処理されるトランザクション そもそも、トランザクションは全て直列に処理されるわ

                                                                        「トランザクション張っておけば大丈夫」と思ってませんか? バグの温床になる、よくある実装パターン
                                                                      • Postgres と MySQL における id, created_at, updated_at に関するベストプラクティス

                                                                        読者対象 ある程度データベースに関する知識を持っている,経験年数 1 年以上のバックエンドエンジニア 特定のプログラミング言語に依存する部分は含めないため,すべての SQL 使用者を対象とする また,ゼロからの丁寧な説明というよりは,リファレンス感覚で使える記事という形にまとめる。 RDBMS の対象バージョン PostgreSQL: 9.4 以降 MySQL: 8.0.28 以降 id (データ型と INSERT 時のデフォルト埋め) 導入 一般的に採用されやすいプライマリキー用の値として,以下を考える。 連番整数 MySQL では AUTO_INCREMENT, Postgres では IDENTITY や SERIAL と呼ばれるもの UUID v1: ハードウェアごとにユニークな単調増加値 UUID v4: ランダム値 UUID v7(ドラフト): 単調増加であるタイムスタンプとラ

                                                                          Postgres と MySQL における id, created_at, updated_at に関するベストプラクティス
                                                                        • アジャイル開発とデータベース設計 - 変化に対応するシンプルな実装のために必要なこと - Agile Journey

                                                                          はじめまして。そーだい(@soudai1025)です。私は普段は技術コンサルティングや受託開発を請け負う合同会社HaveFunTechの代表として、また、予防治療の自社サービスを展開する株式会社リンケージのCTOという二足の草鞋を履き、日々、さまざまなWebサービスの開発に携わっています。 これまでの開発経験のなかで、データベース設計に関わるさまざまな問題に遭遇してきましたが、本稿ではとくに、アジャイル開発時に発生しやすい問題とその対処についてお伝えしたいと思います。開発の現場で目にしやすい実装におけるアンチパターンを示しつつ、アジャイルという指針を維持しながら、対処となるデータベース設計についてご紹介します。 会員登録のアンチパターンと処方箋 イージーな実装とシンプルな実装 Userと言う名の罠 拡張と破綻 データベースは変化に弱い 仕様変更とテーブル変更 Addで変化に追従する 正規化

                                                                            アジャイル開発とデータベース設計 - 変化に対応するシンプルな実装のために必要なこと - Agile Journey
                                                                          • サブクエリの書き方を2万文字弱かけてすべて解説する

                                                                            これはなに ども、レバテック開発部のもりたです。 今回はSQLのサブクエリについてまとめます。仕事でクエリを書く際、サブクエリは頻出の構文だと思うんですが、同時にサブクエリの書き方を完全に理解しているよという人は案外少ないのではないでしょうか?[1] 実際、MySQLの公式ドキュメントを見ると12ページくらいを割かれており、意外と奥深いのがサブクエリです。使いこなせると便利ですし、何よりちょっとSQLのコツみたいなのがわかって面白いよ、ということで記事にしてみました。 前提 この記事は以下の前提を含んでいます。 環境 MySQL8.0系 読者の知識 なんとなくサブクエリが書ける けど相関サブクエリとかになると「あーっ」つってGoogle meetを閉じてしまうくらいのレベル感 記事のボリューム 18,000文字 おれの卒論が20,000文字だった マサカリ 間違ってたら投げてくれ〜〜 それ

                                                                              サブクエリの書き方を2万文字弱かけてすべて解説する
                                                                            • 理屈で考える、データベースのチューニング | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]

                                                                              株式会社ラクーンホールディングスのエンジニア/デザイナーから技術情報をはじめ、世の中のためになることや社内のことなどを発信してます。 パフォーマンス勉強会OracleデータベースMySQLInnoDB こんにちは、羽山です。今回はOracleデータベースのチューニングで少し踏み込んだ内容です。途中で比較対象としてMySQLも登場します。 日頃からSQLチューニングの機会があってそれなりに得意としているのに、それでもなぜかパフォーマンスがでないSQLに悩んだ経験はありませんか? 謎の遅い現象は特に大規模データベースになってくると発生しがちなのですが、速い場合も遅い場合も必ず理由があります。そこで本記事ではデータベースのチューニングにおいて意外と見落とされがちなローレベルな部分に着目して、さらに一歩上のパフォーマンスチューニングに必要な知識を解説します。 この記事を書くきっかけとなったのは私た

                                                                                理屈で考える、データベースのチューニング | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
                                                                              • あなたの遅延はどこから? SQLから! 〜患部に止まってすぐ効くSQLレビューチェックリスト 年初め特大サービス号〜 - ANDPAD Tech Blog

                                                                                あけましておめでとうございます! 今年は異世界放浪メシのアニメが放送されるらしいので楽しみなバックエンドの原田 (tomtwinkle)です。 内部で運用しているSQLレビューチェックリストの一部を抽出し思いつきで追記して行った結果、結構な分量になってしまいました。 暇な時でも流し読みして頂けるとありがたいです。 Motivation SQLレビュー観点 大きくSQLが変更される修正の際にはEXPLAINをレビュー内容に加える 検索のキーにINDEXを使用しているか SQL発行回数がN+1(1+N)の構造になっていないか サブクエリを利用したSQLはパフォーマンス要チェック Viewの利用は基本的に禁止 CROSS JOINは禁止 WHERE句で十分に絞った検索をしているか 必要なcolumnだけSELECTしているか レコード数だけ必要な場合にCOUNT用のSQLを発行しているか 集計関

                                                                                  あなたの遅延はどこから? SQLから! 〜患部に止まってすぐ効くSQLレビューチェックリスト 年初め特大サービス号〜 - ANDPAD Tech Blog
                                                                                • リレーショナルデータベースシステムを趣味で開発している者です。 現在、開発中のシステムを並行トランザクションへ対応させることを検討しており、どのような手法があるのか調べたところ、SS2PLもしくはS2PLという手法が私と同じように自作をされている方々の中では多く採用されているようだと分かりました。 一方で、PostgreSQLやMySQLなどのプロダクションレベルで利用されているシステムではMVCCと呼ばれる手法が採用されているということも分かりました。 きっと後者の方が多くの場合で高いスループットが得ら

                                                                                  リレーショナルデータベースシステムを趣味で開発している者です。 現在、開発中のシステムを並行トランザクションへ対応させることを検討しており、どのような手法があるのか調べたところ、SS2PLもしくはS2PLという手法が私と同じように自作をされている方々の中では多く採用されているようだと分かりました。 一方で、PostgreSQLやMySQLなどのプロダクションレベルで利用されているシステムではMVCCと呼ばれる手法が採用されているということも分かりました。 きっと後者の方が多くの場合で高いスループットが得られるということなのだと思うので、可能であればMVCCを採用したいのですが、あまり初学者向けの実装例も見当たらず、どうしたものかと悩んでおります。 SS2PL/S2PLとMVCCの実装の難易度・工数はどの程度違うものなのでしょうか? また、初めてリレーショナルデータベースシステムを開発する者

                                                                                    リレーショナルデータベースシステムを趣味で開発している者です。 現在、開発中のシステムを並行トランザクションへ対応させることを検討しており、どのような手法があるのか調べたところ、SS2PLもしくはS2PLという手法が私と同じように自作をされている方々の中では多く採用されているようだと分かりました。 一方で、PostgreSQLやMySQLなどのプロダクションレベルで利用されているシステムではMVCCと呼ばれる手法が採用されているということも分かりました。 きっと後者の方が多くの場合で高いスループットが得ら