タグ

ブックマーク / techblog.zozo.com (5)

  • SQL Serverにおけるインデックスの再構成と再構築の性能比較 - ZOZO TECH BLOG

    こんにちは。開発部基幹SREチームの廣瀬です。 弊社では、システムの一部にSQL Serverを使用しています。 記事では、SQL Serverにおけるインデックスのメンテナンス方法である再構成と再構築について、それぞれを実行した場合のクエリ性能の比較結果をご紹介したいと思います。 比較を実施するに至った背景の前に、まずはインデックスの再構成と再構築について説明したいと思います。 インデックスの再構成と再構築 インデックス SQL Serverのインデックスについて簡単にご紹介します。下図は、SQL Serverのデータ構造の概略図です。 テーブルは、1つ以上のインデックスから構成されます。なお、ヒープという別のデータ構造だけからテーブルを構成することもできますが、今回は省略します。 インデックスは複数のページから構成されます。各ページは論理的につながりを持ちB-Treeを形成します。

    SQL Serverにおけるインデックスの再構成と再構築の性能比較 - ZOZO TECH BLOG
    murasuke
    murasuke 2024/03/25
    断片化の解消をするだけで、クエリが3倍くらい早くなった(元々早かったのが、徐々に遅くなってき多分が回復)したことあるので、定期的なメンテナンスは必要。MySQLとかどうなってるん?と思うところ。
  • ZOZOUSEDがMySQLからSQL Serverに移行して得られた検討から構築・運用のTIPS - ZOZO TECH BLOG

    はじめに こんにちは。SRE部USED基幹インフラの先崎です。 ZOZOUSEDは2016年、当時の株式会社ZOZOUSED システム部のインフラチームにて、基幹のデータベース(以下DB)をMySQLからMicrosoft SQL Server(以下MS SQL)に移行しました。 移行してから今日まで、データロストなどの大きなトラブルは起きておりません。そのため、当時の変更理由から選定時に検討した内容、その際に発生した課題の解決方法を簡単に紹介させていただきます。MySQLからMS SQLへ移行を検討しているどなたかのお役に立てられたら幸いです。 MySQLからの移行検討 当時、自動切替(フェイルオーバー)を実現しようとすると費用が大きくかかってしまうため、手動切替(スイッチオーバー)の形をとっていたことが最大の要因でした。 MySQLの正常時イメージ図 MySQLの障害時イメージ図 まず

    ZOZOUSEDがMySQLからSQL Serverに移行して得られた検討から構築・運用のTIPS - ZOZO TECH BLOG
    murasuke
    murasuke 2024/03/25
  • ZOZOTOWNの基幹データベースをリプレースした話 - ZOZO TECH BLOG

    はじめに こんにちは、技術部SRE部ZOZOSREチームの堀口です。普段はZOZOTOWNのオンプレミスとクラウドの構築・運用に携わっています。またDBREとしてZOZOTOWNのデータベース全般の運用・保守も兼務しております。 ZOZOTOWNではSQL Serverを中心とした各種DBMSが稼働しています。その中でZOZOTOWNサービスの根幹となるいわゆる基幹データベース(以下、基幹DBと呼ぶ)を5年ぶりにリプレースしました。 基幹DB群は、商品情報、在庫情報、注文情報、会員様情報、ブランド様情報、配送管理、キャンペーン情報、分析系情報などZOZOTOWNサービスにおけるほぼ全ての情報を管理しているものとなります。 リプレースのモチベーションは5年のハードウェア(以下、HWと呼ぶ)保守期限終了およびSQL ServerのEnd Of Life(以下、EOLと呼ぶ)を迎えるため、HW

    ZOZOTOWNの基幹データベースをリプレースした話 - ZOZO TECH BLOG
  • SQL Serverのスナップショット分離レベル導入によるデータ基盤連携の課題解決 - ZOZO TECH BLOG

    こんにちは。アーキテクト部の廣瀬です。 弊社ではサービスの一部にSQL Serverを使用しており、BigQuery上のデータ基盤へテーブルを連携しています。連携の仕組みは非常によくできているものの、データ不整合や遅延が発生し得るという課題を抱えていました。しかし、SQL Serverのスナップショット分離レベルを導入することでそれらを解決できました。記事では、抱えていた課題および解決までの流れと、スナップショット分離レベルを導入する際に気を付ける点を紹介します。 データ基盤連携の方法と課題 データ基盤との連携方法は、日次連携とリアルタイム連携の2種類です。それぞれの連携方法と抱えていた課題について説明します。 日次連携 1日1回、SQL Server専用の一括コピーツールである「bcp」を使用してテーブル全体のデータを取得する連携方法です。データ取得時のSQLのイメージは以下の通りです

    SQL Serverのスナップショット分離レベル導入によるデータ基盤連携の課題解決 - ZOZO TECH BLOG
    murasuke
    murasuke 2021/05/05
    “SNAPSHOT”使ったことなかったけど、OracleのSerializableみたいな動きだな。重複更新するとロールバックする。
  • 開発効率を上げる!Swaggerで作るWEB APIモック - ZOZO TECH BLOG

    こんにちは。バックエンドエンジニアのじょーです。 みなさんは、開発初期の段階でWeb API(以下API)の実装が追いつかずクライアント側が開発できないという経験をしたことはありますか? クライアント側はAPIがないと開発が滞ってしまうことがありますが、かといってAPIの開発も始まったばかりではすぐに必要なAPIを提供することができません。その問題を解決し、両者でスムーズに開発をすすめるために有効な方法の1つに、APIモックの作成があります。 弊社では、開発初期の段階でWeb APIのモックを作成し、スムーズに開発できるようにしています。 以前は、Apiaryをモック作成ツールとして利用していましたが、記法やエディターに使いづらい点があり最近Swaggerに移行しました。 記事では、Swaggerを使ったAPIモックの作成方法と手順、また気をつけるべき点などを紹介します。 目次 Swag

    開発効率を上げる!Swaggerで作るWEB APIモック - ZOZO TECH BLOG
  • 1