タグ

DBに関するi_matsuiのブックマーク (14)

  • mysqldump で出力した tsvを Redshift に import - Qiita

    mysqldump で出力したTSVには下記のような特徴があって扱いがめんどくさいですが、Redshiftのオプション指定することで 無加工で Redshift に取り込めます。 nullは \N になる フィールド内のタブ(\t) は、 \\t になる (\でエスケープされる) フィールド内の改行(\n) は、 \\n になる (\でエスケープされる) mysqldump で tsv として dumpする

    mysqldump で出力した tsvを Redshift に import - Qiita
  • SQLAlchemy で悲観的・楽観的排他制御 - Qiita

    SQLAlchemy とは SQLAlchemyは PythonORM で、リレーショナルデータベースをオブジェクトとして扱うとこができるライブラリです。 SQLiteMySQL、PostgreSQLOracle などのデータベースに使用することができます。 導入するメリットとしては、 SQL を直接記述することなく、Python オブジェクトとしてデータベースを操作できる データベースの種類によらず、同一のソースコードで複数のデータベースを併用することができる SQL インジェクション対策がサポートされている などが上げられます。 今回は SQLAlchemy と MySQL を用いて、悲観的・楽観的排他制御を実装していきます。 環境 SQLAlchemy を使用するには、以下のインストールが必要です。括弧内は今回使用したバージョンです。 Python (3.7.3) データベ

    SQLAlchemy で悲観的・楽観的排他制御 - Qiita
  • 悲観ロックと楽観ロックの違い

    排他制御って何?排他制御とは、共有資源に対して同時にアクセスしても問題なく動作できる制御のことをいいます。 排他制御を行うことで共有資源のデータに不整合が起きることを防ぎます。 例えば、ショッピングサイトがあるとします。ショッピングサイトの商品(共有資源)を同時に購入した時、排他制御が行われていないとどうなるのでしょうか。 ① 共有資源の商品を同時に購入共有資源の同じ商品をタイミング的に2人同時に購入する事は、そこまで発生する事ではないかもしれません。ただ人気のショッピングサイトであればあるほど、その可能性は高くなります。 ② 在庫を確認するまず購入した商品の在庫が残っているか確認します。今回の例では在庫は残り"10"とします。 ③ 在庫を減らす次に在庫を減らします。在庫の残りは"10"なので、1つ減らして"9"にします。 スポンサーリンク ここで問題になるのは、排他制御をしていない為、同

    悲観ロックと楽観ロックの違い
  • 排他制御(楽観ロック・悲観ロック)の基礎  - Qiita

    排他制御とは 共有資源(データやファイル)に対して複数のアクセスが見込まれる場合に、同時アクセスにより不整合が発生することを防ぐため、あるトランザクションが共有資源(データやファイル)にアクセスしている時は他トランザクションからはアクセスできないようにして直列に処理されるように制御すること。 ■同時アクセスによる不整合の例 ■排他制御をすることで整合性を保つ 排他制御の方式 排他制御の実現方式はいくつか存在するが、ここでは代表的な楽観ロック(楽観的排他制御)と悲観ロック(悲観的排他制御)を紹介する。 楽観ロック(楽観的排他制御) 楽観ロックとは、めったなことでは他者との同時更新は起きないであろう、という楽観的な前提の排他制御。データそのものに対してロックは行わずに、更新対象のデータがデータ取得時と同じ状態であることを確認してから更新することで、データの整合性を保証する方式。楽観ロックを使用

    排他制御(楽観ロック・悲観ロック)の基礎  - Qiita
  • 音の高さ、音量が見える!フーリエ変換、スペクトルって何だろう?

    まず、スペクトルとは何だろう?スペクトルとは、何らかのパラメータ(波長、振動数(周波数)、エネルギーなど)ごとの「強度分布」を2次元グラフに表示したものです。 グラフとは違いますが、虹は自然が作り出した、光を分解したスペクトルです。 スペクトル(英語: spectrum)とは、複雑な情報や信号をその成分に分解し、成分ごとの大小に従って配列したもののことである。2次元以上で図示されることが多く、その図自体のことをスペクトルと呼ぶこともある。 様々な領域で用いられる用語で、様々な意味を持つ。現代的な意味のスペクトルは、分光スペクトルか、それから派生した意味のものが多い。 出典: フリー百科事典『ウィキペディア(Wikipedia)』 ピンクフロイドのアルバム Dark Side of the Moonこの有名なジャケは、光をプリズムを通して可視化したものです。 リアルダークサイドオブザムーン

    音の高さ、音量が見える!フーリエ変換、スペクトルって何だろう?
  • Androidで周波数を解析してみよう - TB-LAB BLOG

    こんちは,kkです. 今回は自分の研究の根幹である高速フーリエ変換について解説したいと思います. shiro-chanにプログラムを丸ごと保存しておくので参考にしてください. いくつか厳密ではない説明や,おかしいところがあると思いますがご了承ください. 高速フーリエ変換とは そもそもフーリエ解析とはなんぞやってことで簡単に説明します. ものすごいざっくり言うと,波形データを周波数ごとのレベルに変換することです. レベルというのは強さや音量と置き換えてもいいです(厳密にはダメですが分かりやすくするため). イメージできるように音で説明します. 例えば太鼓を叩いたり,ギターを弾いたりすると膜や弦が振動します.その振動が空気中を伝わり,音波となって私達の耳に聞こえます. つまり,音も波形データです. 下の図を見てみましょう. 1つの波が4つ以上の単純な波(正弦波)で構成されていることが分かると思

    Androidで周波数を解析してみよう - TB-LAB BLOG
  • MySQL EXPLAINのそれぞれの項目についての覚書 - Qiita

    id/select_type/table どのテーブルがどの順番でアクセスされているか id 実行順番を表す 数字が同じなら複数のクエリが1つのクエリとして実行されている select_typeの詳細 SIMPLE 単一のテーブル サブクエリが絡む場合 PRIMARY 外部クエリ SUBQUERY 相関関係の無いサブクエリ DEPENDENT SUBQUERY 相関関係のあるサブクエリ UNCACHEABLE SUBQUERY 実行する度に結果が変わる可能性のあるサブクエリ DERIVED FROM句で用いられているサブクエリ table 対象テーブルの名称 partition どのpartisionテーブルを使用したか 複数にまたがる時は複数の値が表示される type レコードアクセスタイプ typeの詳細 const pk or uniqueインデックスを使用したルックアップによるアク

    MySQL EXPLAINのそれぞれの項目についての覚書 - Qiita
    i_matsui
    i_matsui 2020/07/22
    “等価検索(where k = v)を行った時に使用されるアクセス”
  • MySQLのEXPLAIN - Qiita

    クエリを最適化するということは、 ・書き換える前と後でクエリの実行結果が同じになる ・EXPLAINがよりよい実行結果を表示する クエリの実行計画を調べるためには、 SELECT文の先頭に「EXPLAIN」をつけて実行する フィールド id/select_type クエリの種類を表すもの。 クエリの種類とはJOIN、サブクエリ、UNIONおよびそれらの組み合わせのことで、 select_typeの内容もその組み合わせから導き出されたものである。 JOINの場合 MySQLが実行できるJOINの種類は「Nested Look Join(NLJ)」の一種類しかない。 テーブルを一つずつ順に処理していく方式のこと。 クエリがJOINだけから構成される場合、select_typeは「SIMPLE」と表示される。 SIMPLEではidが全て同じ値になる。 EXPLAINの出力の順序がどのテーブルから

    MySQLのEXPLAIN - Qiita
  • SQLAlchemyのリレーションにおけるメソッドやパラメータについてのメモ - ぽよメモ

    SQLAlchemyはPythonORMの中でも比較的よく検索にヒットするように思いますが,和訳済みドキュメント*1のバージョンが古く,リレーションの張り方についてどうも自分の中でごちゃごちゃしているなと思い少し調べてみました. 注意: これはただの生物学徒が自分の興味位で適当に家ドキュメント*2とかを流し読みして書いた内容です.間違っていたらコメント等でお知らせください. 環境 relation()とrelationship() backrefとback_populates backrefの場合 back_populatesの場合 上記例におけるForeignKey sqlalchemy.orm.backref() lazy select, True immediate joined, False subquery dynamic noload, None raise, raise

    SQLAlchemyのリレーションにおけるメソッドやパラメータについてのメモ - ぽよメモ
  • Realm Swiftのまとめ - Qiita

    情報元 Realm is a mobile database: a replacement for SQLite & Core Data https://realm.io/jp/ Swift Docs - Realm is a mobile database: a replacement for SQLite & Core Data https://realm.io/jp/docs/swift/latest/ RealmSwift Reference https://realm.io/docs/swift/latest/api/ realm/realm-cocoa: Realm is a mobile database: a replacement for Core Data & SQLite https://github.com/realm/realm-cocoa Realm for S

    Realm Swiftのまとめ - Qiita
  • Firebase Realtime DBを実践投入するにあたって考えたこと - Qiita

    Firebase Realtime DBを実践に投入する Databaseと聞くと、これから利用しようとするFirebaseがmBaaSであることを忘れてついREST(Client Server Model)で考えてしまいがちですが、大前提はMobile Platformなので、一度REST、RDBの考え方は捨ててみてください。 RDBの考え方を引き継いだままでは、Firebase Realtime DBの最善の設計はできないと考えています。 そして、RDBの考え方を引き継いだままFirebase Realtime DBを理解しようとすることが、導入の一つの障壁となっていると思っています。 ぜひ頭をリフレッシュしてFirebase Realtime DBの見方を変えてみてください。 この記事では、Firebase Realtime DBの導入するにあたっての考え方やテクニックを紹介します。

    Firebase Realtime DBを実践投入するにあたって考えたこと - Qiita
  • SQLServerのインデックスについてざっくりとまとめてみた - Qiita

    SQLServerについて SQLServerのインデックスについて学ばせていただく機会があり、ものすごく勉強になったのでまとめます。 はじめに 他のDBと同様にSQLServerにもインデックスの概念は存在します。 インデックスとは、DBデータの検索を高速に行うための索引のようなものです。 これがあることによって、データベース内すべてを検索せずに目的のデータを特定することができる便利なしくみです。 SQL Serverにおいてインデックスの種類は以下のようになっています。 ヒープ表(インデックスなしのテーブル) クラスタ化インデックス 非クラスタ化インデックス 複合インデックス 付加列インデックス インデックスは大きく分けてクラスタ化、非クラスタ化にわかれ、非クラスタ化インデックスの中に複合インデックスや、付加列インデックスといったものがあります。 これらを順に説明していきます。 ヒープ

    SQLServerのインデックスについてざっくりとまとめてみた - Qiita
  • SQLServerのテーブルロック状態を取得するSQL

    ロックの状態を調べるSQLは以下の通り SELECT resource_type as オブジェクトの種類, resource_associated_entity_id as エンティティID, (CASE when resource_type = 'OBJECT' then OBJECT_NAME(resource_... SELECT resource_type AS type ,resource_associated_entity_id as entity_id ,( CASE WHEN resource_type = 'OBJECT' THEN OBJECT_NAME( resource_associated_entity_id ) ELSE ( SELECT OBJECT_NAME( OBJECT_ID ) FROM sys.partitions WHERE hobt_id=re

    SQLServerのテーブルロック状態を取得するSQL
  • SwiftでCoreData - Qiita

    概要 この記事は二つのテーマについて書きます。 『SwiftでCoreDataを使うときの注意点』 & 『超忙しい人のためのCoreData入門』。 フレームワークの使い方に重きを置いています。 Swiftの記法はむしろ得意ではないので、お気づきの点はご指摘頂けると嬉しいです。 ※Xcode6.1 CoreDataとは CoreDataはCocoaFrameworkに搭載されているO/Rマッパー。高速、且つメモリー消費を抑えて大量のデータを扱うことができます。 データベースはSqliteであればCoreDataの機能をフルに使うことができます。 『SwiftでCoreDataを使うときの注意点』 CoreDataを使うにあたって、Objective-Cとの相違点について。 二つの注意点 SwiftでCoreDataを実装する際の注意点。たった2つです。 @NSManaged と 名前空間で

    SwiftでCoreData - Qiita
  • 1