並び順

ブックマーク数

期間指定

  • から
  • まで

401 - 440 件 / 520件

新着順 人気順

postgresqlの検索結果401 - 440 件 / 520件

  • DBサーバでUPDATE/DELETEを打つ安心感を高める

    近年はDBサーバで直接UPDATE/DELETE文を発行する場面はかつてより減ったように感じますが、引き出しとして持っていて損はないと思ったので私が普段やっている方法をメモしておきます。 プロトタイピングだったり、開発環境でも有効なので手癖にしておくのは有効だと考えます。 MySQLを例に書いていますが、対象のRDBMSは特に限定されません。 1. 対象のレコードを下見する まずはこれから更新する対象を見ておきましょう。 mysql> select * from books where id=1; +----+-----------+-----------------+-------+ | id | author_id | title | price | +----+-----------+-----------------+-------+ | 1 | 1 | Learning UPDA

      DBサーバでUPDATE/DELETEを打つ安心感を高める
    • PostgreSQLの皮を被った次世代RDBMS - Project Tsurugi (劔) について

      PostgreSQL Conference Japan 2019 (2019-11-15) PostgreSQLの皮を被った次世代RDBMS - Project Tsurugi (劔) について https://www.postgresql.jp/jpug-pgcon2019#K1 資料→https://drive.google.com/file/d/1MYNyq3y2zlGh1qo92rWATSn8IhqU1GE4/view 解説→https://okachimachiorz.hatenablog.com/entry/2019/12/24/230908

        PostgreSQLの皮を被った次世代RDBMS - Project Tsurugi (劔) について
      • SQLiteでベクトル検索ができる拡張sqlite-vssを試す|mah_lab / 西見 公宏

        SQLiteでベクトル検索を可能にするsqlite-vssそんなポータブルで便利なSQLiteですが、そのSQLiteでベクトル検索ができるとなるとより夢が広がります。 SQLite自体はファイルベースなので、あらかじめベクトルデータを設定したSQLiteデータベースファイルをアプリに組み込んで配布しても良いわけです。そうすればデータベースサーバを用意しなくて済む分コストも圧縮されますし、組み込みなのでアプリからは軽量に動作します。 ホスティングする場合でもFly.ioのようにボリュームイメージを利用できるPaaSを利用すれば、問題なく運用が可能です。 前置きが長くなりましたが、このような夢を叶えてくれる拡張がsqlite-vssです。ベクトル検索はFaissベースで実装されています。 とっても良さげではあるのですが、実際に組み込んでみた場合のコード例が見つからなかったので、手を動かして試

          SQLiteでベクトル検索ができる拡張sqlite-vssを試す|mah_lab / 西見 公宏
        • MySQL で複合インデックスを作成する際には必ず Explain の key_len を確認すべきという話

          「Rails Developers Meetup 2018 で「MySQL/InnoDB の裏側」を発表しました」でちゃんと触れられてないので今更ながら key_len について補足します。発表で触れた内容については言及しないので、storage engine や B+ tree といった用語がよくわからない方は発表内容を参照してください。 なお、MySQL のバージョンは 5.7.38 です。 mysql> SELECT @@version; +-----------+ | @@version | +-----------+ | 5.7.38 | +-----------+ 1 row in set (0.00 sec) 事前準備 sample-data-railsdm-2018 の orders テーブルを少しいじって、キャンセル時刻(canceled_at)、配送予定時刻(deliv

            MySQL で複合インデックスを作成する際には必ず Explain の key_len を確認すべきという話
          • Javaで最低限おさえておいてほしいクラス・インタフェース35 - 2024年版 - きしだのHatena

            ま、このくらい知っておいてもらわないと&とりあえずこんだけ知ってればだいたいの処理が書けるクラス・インタフェースをまとめてみました。2024年版。 詳しく知りたい人は「プロになるJava」を! java.lang.Class java.lang.Exception <- new java.lang.Integer java.lang.Object <- new java.lang.Runnable java.lang.String java.lang.System java.lang.Thread java.nio.file.Files <- new java.nio.file.Path <- new java.io.InputStream java.io.InputStreamReader java.io.BufferedReader java.io.OutputStream java.

              Javaで最低限おさえておいてほしいクラス・インタフェース35 - 2024年版 - きしだのHatena
            • 基幹系への安易なOSS採用は禁物、バージョンアップ多発で運用保守が重荷に

              基幹系システムのような社内システムにおいても、オープンソースソフトウエア(OSS)の利用が当たり前になってきた。クラウドサービスを利用する場合や、開発担当者と運用担当者が連携する開発手法DevOpsを採用する場合など、OSSの利用を避けられない。 多くの企業でOSSの利用が進む中、OSSを採用した当初は想定していなかった誤算に直面するケースが浮上している。商用のソフトウエアに比べてサポート期間が短かったり、サポートが充実していないため脆弱性が見つかっても放置してしまったりといった課題だ。ユーザー企業は安易に導入コストだけを見てOSSを採用するのは禁物だ。その後の長期間の運用・保守も含めた体制の検討が求められる。 「OSSの採用がここ数年で周辺システムから基幹系に広がった。その結果、ユーザー企業からは長期間、同じバージョンのソフトウエアを使いたいという要望が増えている」。OSSのデータベース

                基幹系への安易なOSS採用は禁物、バージョンアップ多発で運用保守が重荷に
              • Pythonの3大Webフレームワーク「Flask」「Django」「FastAPI」で急成長しているのは?

                Pythonの3大Webフレームワーク「Flask」「Django」「FastAPI」で急成長しているのは?:Pythonの年次開発者調査結果が公開 Python Software FoundationとJetBrainsは、共同で実施した年次Python開発者調査の結果をまとめた「Python Developers Survey 2021 Results」(2021年Python開発者アンケートの結果)を発表した。 Python Software Foundation(PSF)とチェコのJetBrainsは2022年6月3日、共同で実施した5回目の公式年次Python開発者調査の結果をまとめた「Python Developers Survey 2021 Results」(2021年Python開発者アンケートの結果)を発表した。 同調査は、Pythonとそれを取り巻くエコシステムの現状を

                  Pythonの3大Webフレームワーク「Flask」「Django」「FastAPI」で急成長しているのは?
                • ISUCON12 予選の解説 (Node.jsでSQLiteのまま10万点行く方法) : ISUCON公式Blog

                  ISUCONとはLINEヤフー株式会社が運営窓口となって開催している、お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトルです ISUCON12 予選の解説 (Node.jsでSQLiteのまま10万点行く方法) こんにちは、面白法人カヤックのacidlemonです。例年ISUCONに参加するたびにとても長い「やったこと」ブログを書いているので、もしかしたらそちらを読んだことがある人もいるかもしれません。 ISUCONの公式サイトに記事を書くのは ISUCON3の予選の解説 以来でしょうか。今回もacidlemonが解説、fujiwaraが講評を書く予定ですので、お楽しみに。あ、そういえば先日掲載していただいた 面白法人カヤックからの応援メッセージ の脳内インタビューも私が書いていますのでよく考えたらそれ以来ということになるのかもしれません。予選

                    ISUCON12 予選の解説 (Node.jsでSQLiteのまま10万点行く方法) : ISUCON公式Blog
                  • MySQL即効クエリチューニング読んだ - $shibayu36->blog;

                    MySQL即効クエリチューニング ThinkIT Books 作者:yoku0825インプレスAmazon 最近クエリチューニングの仕事があったので、少し深めに知ろうと読んだ。 MySQLの内部構造がどうなっているかは置いておいて、どうすればクエリの問題を把握できるかが素早く知れる良い本だった。90ページくらいですぐ読めるのも良い。個人的にはHandler_%変数を使った調査、innotopによる状況可視化、sys.innodb_lock_waitsによるロック状況の可視化あたりが非常に参考になった。 ちなみにさらに内部構造に踏み込んで理解しようとするなら、以下の記事がおすすめ。 雑なMySQLパフォーマンスチューニング MySQL with InnoDB のインデックスの基礎知識とありがちな間違い - クックパッド開発者ブログ Rails Developers Meetup 2018 で

                      MySQL即効クエリチューニング読んだ - $shibayu36->blog;
                    • Goでヘキサゴナルアーキテクチャ - Qiita

                      はじめに 『Standard Go Project Layout』と『ヘキサゴナルアーキテクチャ』を参考にサンプルプロジェクトを作ってみました。 トランザクション周りも取り扱います。 『Standard Go Project Layout』とは ↓これです。 Standard Go Project Layout 上記の内容を日本語で簡潔にまとめてくださってる記事もありました。 Goにはディレクトリ構成のスタンダードがあるらしい。 別の記事になりますが、こちらもとても参考になりました。 Practical Go: Real world advice for writing maintainable Go programs ヘキサゴナルアーキテクチャとは ↓これです。 ヘキサゴナルアーキテクチャ(Hexagonal architecture翻訳) 本家サイトへのリンクも張りたかったのですが、現

                        Goでヘキサゴナルアーキテクチャ - Qiita
                      • 静的解析ツールで生まれたSQLインジェクション | ドクセル

                        自己紹介 小川 経歴 ~2009: Webアプリ開発のバイト&業務委託 2009~2019: 三菱重工 イット何も関係ない。野良のパソコンの大先生してた 2019~いま: root ip B2BのSaaS作ってます PHPとVue分かる人来て!!1 面白かった脆弱性 - CVE-2023-22727 PHPフレームワーク CakePHP 4 のSQLインジェクション脆弱性 ORM limit(), offset() でSQLi CVSS v3 9.8 2023/01に修正済み CakePHP Laravelの次に使用率高いフレームワーク(多分) 割と使いやすいからお勧め 一般にコード品質が上がる静的解析ツールの使用で逆に発生

                          静的解析ツールで生まれたSQLインジェクション | ドクセル
                        • 「MySQLのフェイルオーバーテストをする」と聞いてぼんやり思ったこと

                          TL;DR 負荷をかけながらフェイルオーバーテストをするなら、負荷クライアント側で「どの書き込みが成功したのか」のログは必ず取っておく でないと、フェイルオーバー起因でデータロストが発生するのかしないのかのチェックができない フェイルオーバーシナリオ スイッチオーバー(手動での切り替え)を含めてざっと思いつくのはこれくらい。 スイッチオーバー mysqldの正常終了 mysqldの異常終了、特に、mysqld_safeやsystemdがmysqldを再起動させてしまう環境 mysqldのハングアップ カーネルパニック ファイルシステムのハングアップ 電プチ スイッチオーバー たぶんHAソリューションを作る時にちゃんとテストするからこれはそんなに問題にならない気がするけれど、(レプリケーションベースのソリューションの場合)「レプリケーション遅延が起こってる時のスイッチオーバー」で何が起こるか

                          • 最大同時接続数を1に制限したRDSにRDS Proxyを構成して基本動作を押さえよう | DevelopersIO

                            CX事業本部@大阪の岩田です。 社内で需要がありそうだったので、RDS Proxyの基本動作について簡単にまとめてみました。クライアントからの最大同時接続数を1に設定したRDSに対してRDS Proxyを構成し、クライアントアプリケーションに見立てたEC2からいくつかのパターンで接続を試行した結果をまとめています。 環境 今回検証に利用した環境です。 RDS for PostgreSQL 11.8-R1 インスタンスクラス db.t3.micro max_connections: 9 バックグラウンドでrdsadminユーザー、rdsproxyadminユーザーがDBに接続するのを考慮して9に設定しています。今回の環境であればmax_connectionsを9に設定することで非マスターユーザーからの同時接続数を1に制限することができます。 RDS Proxy エンジンの互換性: Postg

                              最大同時接続数を1に制限したRDSにRDS Proxyを構成して基本動作を押さえよう | DevelopersIO
                            • MySQL 5.7 to 8 check list

                              mysql57to8.md 確認すること メンテナンス時間をどれくらい取れるかで戦略が決まる。 基本的にはメンテナンス時間を十分に取れたほうが良い。 またリスクをどれだけ許容できるかもビジネスによるので要確認しておくべき。 基本的には一度切り替えてしまうとロールバックすることは簡単ではない。 覚悟を決めて突き進む必要がある 最初に諦めること MyISAMを使いたい 8でも動くけど諦めろ、もう未来はない InnoDBのほうがDisk サイズを消費する、countが遅い、などの課題はあるので簡単ではないが… InnoDB memcached Pluginとか使ってるんだよね 諦めろ、未来はない これを機にアーキテクチャを見直しましょう PKが無いtableがあるんだよね すべてのtableにまずPKを付けるんだ このあと、DMSを使ったりとかなにをするにしても死ぬ そもそもデータモデルとして死

                                MySQL 5.7 to 8 check list
                              • クエリのパフォーマンスチューニングの第一歩。実行計画や統計情報について入門する

                                SQL実行の流れ まずはSQLがどのような流れで実行されるのかを見ていきます。 SQL実行の流れは大まかに捉えると以下のようになります。 パーサ パーサでは、ユーザーから送信されたクエリを受け取り、その文法的な正確さを検証します。SQLクエリが正しくフォーマットされているか、必要な構文要素が全て含まれているかをチェックし、例えばFROM句で指定されたテーブルが存在するかどうかも確認します。 文法的なエラーがある場合、例えばカンマの欠落や存在しないテーブルの参照など、クエリはエラーとして返されます。 エラーがない場合は、クエリは「抽象構文木」というデータ構造に変換されます。これにより、データベースはクエリをより効率的に解析し、次の処理ステップに進めることができます。 オプティマイザ SQLクエリがパーサを通過した後、次にクエリの最適化を行うのが「オプティマイザ」です。オプティマイザの主な役割

                                  クエリのパフォーマンスチューニングの第一歩。実行計画や統計情報について入門する
                                • アプリチーム x SRE チームによるアプリケーションモニタリング運用改善 - freee Developers Hub

                                  freee人事労務の品質改善を専任で活動している keik です。 freeeではアプリケーションパフォーマンスモニタリング(APM)に Datadog を利用しています。 SRE チームが導入し、アプリケーション開発チームに利用提供する形で運用されています。 導入のきっかけについては以下の記事でも触れられています。 developers.freee.co.jp Datadog APM の画面は多機能かつ柔軟で、例えばウェブサーバーが受けたリクエスト処理の内訳を視覚的にドリルダウンできたり、リクエストや SQL クエリごとのレイテンシやエラー率を計測してダッシュボード化してくれたり、また全画面で共通的に「タグ」や日時を用いたフィルタリングができたりします。直感的なだけなく、見た目もオシャレで、適当に眺めているだけでもワクワクします。 しかし、私達は「ここに映っているもの」が何なのか、正直分

                                    アプリチーム x SRE チームによるアプリケーションモニタリング運用改善 - freee Developers Hub
                                  • なぜSQLiteはバイトコードを使うのか

                                    以前にデータベースを自作しようとして、SQLiteのアーキテクチャを見てみたらVMだったことに疑問を感じ、それをツイートしたところ作者からリプをもらいました。 作者いわく、次のような背景があったとのことでした。 SQLiteを作った当初はデータベースエンジンのことをよく知らないがコンパイラのことをよく知っていた SQLデータベース・エンジンを書くという問題をコンパイラ構築の問題として扱うのは自然なことだった データベースエンジンのコアの部分をVMにするという発想がまったくなかったので、どんなメリットがあるのか?と気になっていました。 それを作者に聞いたら、詳細な説明ページを作ってくれました。 個人的にVMにしたことで、評価&実行のパフォーマンスは多少良くなると思うが、データベースエンジンのパフォーマンスにそれほど寄与していないんじゃないかな?って思ったりしました。 本記事はそのページについ

                                      なぜSQLiteはバイトコードを使うのか
                                    • 加速するEdge Computing

                                      JSConf JP 2021でLTさせていただいた時の資料です.

                                        加速するEdge Computing
                                      • ニコニ立体を直した話 - Qiita

                                        ステージング化 本番のVMについてはここでAMIを取って完了としましたが、ステージングは設定を変更しなければなりませんでした。本番へのアクセスが起こらないよう設定の洗い出しを行い、地道に一つ一つ変更していき、ステージングとして動作するように調整を行いました。地味な作業でしたが、システム間のつながりを把握するという点でとても効率的だったので思ったほど無意味な作業ではありませんでした。 データ移行(BLOB to S3) データ移行はリプレイスプロジェクトでも難易度が高い部分でした。 ニコニ立体は3Dモデルホスティングサービスですが、この3Dモデルのファイル容量が大きく、移行に非常に時間がかかりました。試算では移行に24時間かかると出たため、日々増えるデータをどのようにスムーズに移行するかについて悩みました。 立体の負債解消を手伝ってくれていたまさらっき氏が偶然ALBのRuby on Lamb

                                          ニコニ立体を直した話 - Qiita
                                        • [速報]マイクロソフト、「Azure Synapse」発表。BigQuery対抗の大規模並列データ処理サービス。Ignite 2019

                                          フロリダ州オーランドで開催中のマイクロソフトのイベント「Microsoft Ignite 2019」が開催中です。 その基調講演において同社CEOのサティア・ナデラ氏は、大規模並列データ分析サービス「Azure Synapse Analytics」を発表しました。 同社は現在、大規模データウェアハウス向けのサービスとして「Azure SQL Data Warehouse」を提供していますが、「Azure Synapse」はそれをさらに発展させたもの。 データウェアハウス、ビッグデータ分析、データ統合などを1つのサービスとして統合し、事実上データ容量に上限がなく、ペタバイトクラスのデータでも高速に処理できる性能を提供します。 リレーショナルデータベースのような構造化されたデータおよび非構造化データのいずれにも対応し、SQLによって分析可能です。 そのために「Azure Synapse」では最

                                            [速報]マイクロソフト、「Azure Synapse」発表。BigQuery対抗の大規模並列データ処理サービス。Ignite 2019
                                          • SQLite を再実装する時に役にたつドキュメント - kawasin73のブログ

                                            困った時はドキュメント、どうもかわしんです。最近、諸事情で SQLite のドキュメントを読んでいます。 前回の記事 で紹介した通り SQLite を Rust で再実装しています。おかげさまで 300 を超える Github Star もいただき嬉しいです。 github.com SQLite は全ての仕様が ドキュメント にまとめられているので、そのドキュメントと本家の実装を読み比べながら実装しています。 SQLite を再実装する上で特に以下のドキュメントは役にたちます。これらだけで最小限の SQLite の実装は作れると思います。 Overview Documents > About SQLite いかに SQLite がすごいかを自慢しているドキュメント。使おうとしている人には安心を、再実装しようとする人には絶望を与えてくれます。 Programming Interfaces >

                                              SQLite を再実装する時に役にたつドキュメント - kawasin73のブログ
                                            • MySQLでNested Loopなクエリはインデックスをどう辿っているか - $shibayu36->blog;

                                              タイムライン的なものをSELECTだけで実装しようと思った時に、Nested LoopなクエリでUsing temporary; Using filesortが出るようなそこそこ遅いクエリになる。その時にMySQLがインデックスをどう辿っているかを知りたかったので調べてみた。MySQLバージョンは8.0.33。 あまり自信はないので、もし間違った話をしていたら教えて欲しい。 どのようなクエリを検証するか タイムラインの取得ができるような、ユーザー・フォロー関係・投稿の3つのテーブルを作る。スキーマは次の通り。 CREATE TABLE users ( id INTEGER PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL ); CREATE TABLE follows ( id INTEGER PRIMARY KEY AUTO_I

                                                MySQLでNested Loopなクエリはインデックスをどう辿っているか - $shibayu36->blog;
                                              • 組み込みシステム向けDBであるSQLite入門 - MyEnigma

                                                Using SQLite: Small. Fast. Reliable. Choose Any Three. (English Edition) 目次 目次 はじめに SQLiteの歴史 特徴 トランザクションがある 設定がない 様々なSQL機能が利用可能 クロスプラットの単一ファイルで管理 高速にデータにアクセスできる 大規模なデータを管理できる ソフトウェアが小さい ソフトウェアやファイルフォーマットが安定している ソースコードがPublic domainで公開されている。 ソフトウェアとしての品質が高い 使い方 公式のCLIツールを使う Pythonの公式モジュールsqlite3を使う PandasのDataFrameとSQLiteをやり取りする 参考資料 MyEnigma Supporters はじめに 世界で最も使われているOSSってなんだろうと考えた時に、 真っ先に思いつくのが

                                                  組み込みシステム向けDBであるSQLite入門 - MyEnigma
                                                • ISUCON11 予選問題実践攻略法 : ISUCON公式Blog

                                                  DB は以下のコマンドで確認できる通り、MariaDB 10.3 でした。$ mysqld --version mysqld Ver 10.3.31-MariaDB-0ubuntu0.20.04.1 for debian-linux-gnu on x86_64 (Ubuntu 20.04) 当日マニュアルに記載の通り、各言語実装は systemd で管理されているため、systemd に関する知識があると良いと思います。特に、アプリケーションを編集しビルドした後、 systemctl restart isucondition.go.service を実行しないと編集が反映されないことに注意しましょう。 他にも例えば、isucondition がどのように環境変数を読み込んでいるかを調べるには以下のような手順で行えます。 当日マニュアルの参考実装の項目を読み、サービス名が isucondit

                                                    ISUCON11 予選問題実践攻略法 : ISUCON公式Blog
                                                  • Cloudflare、CDNエッジからMySQLやPostgreSQLへ接続を可能にする「Relational Database Connectors」発表

                                                    Cloudflare、CDNエッジからMySQLやPostgreSQLへ接続を可能にする「Relational Database Connectors」発表 Cloudflareは、CDNエッジで実行しているWorkersなどのアプリケーションからMySQLやPostgreSQLなどのリレーショナルデータベースに接続する機能を提供する「Relational Database Connectors」を発表しました。 Today, we’re announcing support for relational databases, including Postgres and MySQL from Workers. https://t.co/usLsYczxhr #FullStackWeek — Cloudflare (@Cloudflare) November 15, 2021 Cloudf

                                                      Cloudflare、CDNエッジからMySQLやPostgreSQLへ接続を可能にする「Relational Database Connectors」発表
                                                    • MySQL/Postgres におけるトランザクション分離レベルと発生するアノマリーを整理する

                                                      読者対象 ANSI 定義の古典的なトランザクション分離レベルとアノマリーは概ね理解している MySQL/Postgres では理論的な部分がどうなっているのかを知りたい 理論面の前提知識 2022-08-19 追記: 社内勉強会向けのスライドを作成しました。先にスライドを見てから,引用文献およびこの記事を読むと理解が深まると思います。 まず ANSI 定義の古典的な定義を聞いたことが無い方は,以下のリンクを参照されたい。 ANSI 定義に対応する解説はこれらのサイト以外にもたくさんあるため,自分にとって読みやすいと感じる情報をあたってほしい。(既に熟知されている方は十分) 次点で読んでいただきたいのが, @kumagi さんの以下の記事。古典的には 4 つの分離レベルと 3 つのアノマリーだけで説明されていたものの,不十分であることが学術的に指摘され,解像度を上げようとする流れが後になって

                                                        MySQL/Postgres におけるトランザクション分離レベルと発生するアノマリーを整理する
                                                      • Consider SQLite

                                                        If you were creating a web app from scratch today, what database would you use? Probably the most frequent answer I see to this is Postgres, although there are a wide range of common answers: MySQL, MariaDB, Microsoft SQL Server, MongoDB, etc. Today I want you to consider: what if SQLite would do just fine? For those who are unfamiliar, SQLite is a implementation of SQL as a library — this means t

                                                        • MySQL のインデクスが利用されないクエリ等を自動検出する ExplainPolice の運用について

                                                          LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog LINE 株式会社 B2B Platform 開発担当フェローの Matsuno です。 LINE の Business Platform ではメインのデータベースとして MySQL を利用しています。MySQL は非常に高速に動く OSS の RDBMS なので、とても便利に利用させていただいております。 MySQL はとても高速なのですが、うっかり index を使わないクエリを発行した場合に実行がとても遅くなってしまうことがあります。LINE の Business Platform はとても多くのお客様が利用されるので、B2B としては異例なほどトラフィックが多く、少し遅いクエリが発生した結果としてサイト全体がダウンして

                                                            MySQL のインデクスが利用されないクエリ等を自動検出する ExplainPolice の運用について
                                                          • RDS Blue/Green Deployments を使ってシュッと utf8mb4 にマイグレーションした話 - カミナシ エンジニアブログ

                                                            こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 カミナシでは RDB に Amazon Aurora MySQL 2(MySQL 5.7 互換)を使っています(以下 Aurora MySQL と略します)。 ある日、社内の Slack で「𠮷」などの文字列が登録できないのではないかという話が出ました。これを聞いて「あー」と思った方も多いでしょう。 MySQL で有名な UTF-8 の 4 バイト文字問題で、歴史的な理由から MySQL 5.7 以前では utf8 の文字セットは utf8mb4 ではなく utf8mb3 を指しています。 dev.mysql.com カミナシのアプリケーションは 4 バイトの文字列が入力された場合はシステムエラーを返す実装になっていますが、エラーの内容をユーザーにわかりやすく伝えることは難しいためユーザー体験としても良くない

                                                              RDS Blue/Green Deployments を使ってシュッと utf8mb4 にマイグレーションした話 - カミナシ エンジニアブログ
                                                            • データ基盤の管理に役立つ監視用のSQLを紹介します - 10X Product Blog

                                                              Analytics Engineerの吉田(id:syou6162)です。BigQueryを中心に10X社内のデータ関連の管理をしています。10Xに入社してそろそろ一年になろうかとしていますが、データ基盤を適切に管理 / 運用するためにSQLによる監視を少しずつ取り入れています。この記事では、具体的にどのようなSQLを書いて監視しているのか紹介したいと思います。 なお、SQLを使ったデータ基盤の監視自体については私の前職のTech Blogで詳細に書いていますので、そちらを参照してください。 SQLを使った監視でデータ基盤の品質を向上させる - MonotaRO Tech Blog データ管理に役立つメタデータに関する勉強会を社内外で開催しました - MonotaRO Tech Blog 本エントリはこれをベースに「dbtをフルに活用している10Xの環境向けに入れた監視」や「BigQuer

                                                                データ基盤の管理に役立つ監視用のSQLを紹介します - 10X Product Blog
                                                              • PostgreSQL 12が正式リリース。Bツリー周りの改善による性能向上、JSONパスによる抽出可能など

                                                                オープンソースのリレーショナルデータベース「PostgreSQL 12」の正式版がリリースされました。PostgreSQL 11の登場から約1年ぶりのメジャーバージョンアップです(日本語プレスリリース)。 PostgreSQL 12では、Bツリーインデックス周りの改善、サイズ縮小などにより全体的な性能向上を実現。パーティション化されたテーブルに対するクエリでは、テーブル管理情報を効率的に作成、操作することにより、特に数千もの多くのパーティションから構成されるテーブルに対する検索での性能向上につながっています。 jsonb型のデータに対して、SQLでの問い合わせにJSONパスが利用可能になりました。これによりJSONデータに対する部分指定での抽出が可能になりました。 インデックスへの書き込みをブロックせずにインデックスを再構築するReindex Concurrentlyコマンドが導入されたた

                                                                  PostgreSQL 12が正式リリース。Bツリー周りの改善による性能向上、JSONパスによる抽出可能など
                                                                • SQLite のおもしろ仕様 (2) : ファイルフォーマット - kawasin73のブログ

                                                                  後方互換性って辛いね、どうもかわしんです。 最近 Rust で SQLite をフルスクラッチで再実装しています。 github.com 再実装するために SQLite の公式ドキュメントやソースコードを読み込んでいるわけですが、その過程で気付いたおもしろポイントを共有しようかと思います。 今回はその第二弾、ファイルフォーマット編です。第一弾はこちら:SQLite のおもしろ仕様 (1) : データ型 - kawasin73のブログ 前提知識 : ページ まず、この記事を面白いと思ってもらうための前提知識です。 大抵のデータベースはデータを保存するファイルをページという単位で管理します。SQLite ではデフォルトでは 1 ページ 4096 バイトです。これは、ファイルを保存するデバイス(HDD や SSD など)としてブロックデバイスを想定しているからです。ブロックデバイスとはデータの読

                                                                    SQLite のおもしろ仕様 (2) : ファイルフォーマット - kawasin73のブログ
                                                                  • 【入門】データベース設計まとめ - Qiita

                                                                    はじめに 今回はデータベース設計について学び直したので内容をまとめていきます。 自分は2021年に新卒でWeb系の開発会社にフロントエンジニアとして入社し2022年で2年目になります。 実務ではNext.js×TypeScriptを利用したフロントの開発をメインで行っています。 直近の開発案件でRailsを使ったサーバーサイドの開発を担当することになり、DB設計を触ったのですが体系的な理解をしていなかったので苦戦をしました。 実装はできたものの、データベース設計を「なんとなくの理解」で終わらせないように、体系的に学び直しました。 データベース設計の学習に関しては下記の書籍を参考に進めました。 スッキリわかるSQL入門 達人に学ぶDB設計 徹底指南書 対象者 データベース設計について基礎から学びたい人 何となくデータベースの設計をしている人 正規化について学びたい人 データベースとDBMS

                                                                      【入門】データベース設計まとめ - Qiita
                                                                    • EmbulkでPostgreSQLをMySQLに移行した話 - LIVESENSE ENGINEER BLOG

                                                                      こんにちは。マッハバイトを運営するアルバイト事業部エンジニアの mnmandahalf です。 先日、マッハバイトの販売管理システムで使っているデータベースをオンプレPostgreSQLからAmazon Aurora MySQLに移行しました。 本記事では移行に至った背景、吸収する必要があった差分や苦労した点についてお話しします。 環境 移行前のバージョン: PostgreSQL 9.4 ※ドキュメントはバージョン14のものを添付しています 移行後のバージョン: Aurora MySQL 3.02.0 (compatible with MySQL 8.0.23) 環境 MySQL移行の背景 データ移行方法の検討 Embulkの実行で考慮したポイント Embulkの設定 scram-sha-256認証への対応 タイムスタンプが9時間巻き戻る FK制約を無効化できない PostgreSQLとM

                                                                        EmbulkでPostgreSQLをMySQLに移行した話 - LIVESENSE ENGINEER BLOG
                                                                      • Chrome開発チームがSQLiteチームとWebAssembly版SQLiteを開発中。Webブラウザ上からのファイル書き込みで永続化も可能。Web SQL APIの代替として

                                                                        Chrome開発チームがSQLiteチームとWebAssembly版SQLiteを開発中。Webブラウザ上からのファイル書き込みで永続化も可能。Web SQL APIの代替として Google Chromeの開発チームは、すでに非推奨となっているWeb標準のWeb SQL Database APIをChromeから削除、その代替機能としてSQLite開発チームと協力してWebAssembly版のSQLiteを開発し、提供する予定であることを明らかにしました。 Chrome is deprecating and eventually removing Web SQL! Read @tomayac’s post that details all the steps for getting there. [We are here] Chrome 105 shows a deprecation w

                                                                          Chrome開発チームがSQLiteチームとWebAssembly版SQLiteを開発中。Webブラウザ上からのファイル書き込みで永続化も可能。Web SQL APIの代替として
                                                                        • 分析用SQLを書くときの思考回路について|だみ〜

                                                                          本稿では、分析用のSQLを書くときに則っている思考回路について述べて行こうと思います。 この言語化はあまりきちんとされている印象が無いので、自分がそこそこ初めての言語化だと思って頑張ってやってみようと思います。 言い換えれば、私はこういう思考回路でSQLを書きますが、みなさんどうですか、という話でもあります。 あとは、前提として、現代的な分析用の分散エンジンにSQLを投げるときを考えています。それ以外の場合はむしろ非効率になることも多いかもしれません。 0.問題設定今回の題材は、待てばチケットが復活する無料単話があり、有料で無料単話も買える、そして単行本購買もできる、というマンガサービスとしましょう。 このサービスの企画者から、チケットで無料単話だけ読むユーザが、もし有料で単話を買うようになったらどれくらい売上が伸びるのか教えてほしい、という依頼が来たとします。 これを仮説形式に直すと、

                                                                            分析用SQLを書くときの思考回路について|だみ〜
                                                                          • 2020年危険なソフトウェアの脆弱性トップ25が発表

                                                                            United States Computer Emergency Readiness Team (US-CERT)は8月20日(米国時間)、「2020 CWE Top 25 Most Dangerous Software Weaknesses|CISA」において、アメリカ合衆国国土安全保障省システムエンジニアリングおよび開発機関(HSSEDI: Homeland Security Systems Engineering and Development Institute)から、2020年Common Weakness Enumeration (CWE:共通脆弱性タイプ一覧)におけるソフトウェアに深刻な被害をもたらすおそれがある脆弱性トップ25が発表されたと伝えた。攻撃者はこうした脆弱性を悪用して影響を受けるシステムを制御したり、機密情報を窃取したり、サービス妨害攻撃(DoS: Denial

                                                                              2020年危険なソフトウェアの脆弱性トップ25が発表
                                                                            • MySQLの物理削除によるパフォーマンスの悪化とその回避策について

                                                                              ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめまして、Yahoo!ショッピングでシステム開発を担当している村上です。 Yahoo!ショッピングでは数億件にのぼる商品が日々更新されています。 今回はそれを支える巨大なDBの運用の中で遭遇したMySQLのアンチパターンと、回避した方法について紹介いたします。 特定のテーブルをJoinするとすごく遅くなる Yahoo!ショッピングでは商品を出品するためのツールがあります。 商品情報には「商品名」「価格」といった、任意で設定可能な項目のほか、「ブランド」「商品種別」など、製品ごとに入力する内容が決まっている項目を、マスター情報としてテーブルで管理しています。 このマスター情報を利用して、出品の際に入力情報が正確であるかどうか確か

                                                                                MySQLの物理削除によるパフォーマンスの悪化とその回避策について
                                                                              • 27. 論理削除とは何か?どのような解法があるのか? w/ twada | fukabori.fm

                                                                                話したネタ 論理削除とはそもそも何か? 物理削除とは? なぜ、論理削除が生まれてくるのか? SQLアンチパターン 幻の第26章「とりあえず削除フラグ」 理由1: 心理的なハードルの高さ、怖さがある 理由2: 削除したデータを検索対象に入れたい場合がある 理由3: ログとしての用途 理由4: 誤操作をすぐに戻したい アンチパターンとは何か? なぜ、論理削除はアンチパターンとして捉えられるのか? 全てのSQL文のWHERE句に削除フラグが必ず入る LIMIT 1などが蔓延していく 論理削除に気づくきっかけは何か? テーブル設計や、規約から気づく 論理削除というアンチパターンをどのように解いていくか? 論理削除という概念は世の中にまずなく、お客様は論理削除という言葉を使っていない 要件をどのように設計すればいいのか? ORMの論理削除プラグインはあまり良くない 状態遷移として捉える方法 Soft

                                                                                  27. 論理削除とは何か?どのような解法があるのか? w/ twada | fukabori.fm
                                                                                • 「開発者向けの MySQL 入門」という勉強会をしました - しなしな記録

                                                                                  今、自分が所属している会社では、いわゆるフルサイクルなアプリケーションエンジニアがほとんどで、SRE のような、システムを運用改善することを専門にするメンバーは居ません。一方でそれなりにプロダクトの数は多く、各種ミドルウェアの運用で困っているのを見かけることがあります。 色々な人が似た問題に悩むのはもったいないので、「MySQL を運用したことがある人からすると、こういう考え方をする」という風な目線で勉強会を行いました。せっかくなので社内の情報を抜いたうえで公開します(同じようなことを色々な場所で言っていて、その都度作り直しているから……というのもあります)。 speakerdeck.com ちなみに DB のどこで悩むかはだいぶ業界ドメインに左右されると思っています(それはそう)。ゲーム業界なんかは、激しくスパイクするワークロードな上にミスったときの機会損失が激しいので、シャーディングを

                                                                                    「開発者向けの MySQL 入門」という勉強会をしました - しなしな記録