タグ

DBに関するchanpon0のブックマーク (23)

  • Sequelizeを使用してデータベースを操作するための基本的な情報(2020.09更新) - Qiita

    Sequelizeとは SequelizeはMYSQL,MariaDB,SQLite,Postgresに簡単にアクセスするためのNode.jsのライブラリである。 以下の機能を有している。 オブジェクトとDBの関連を取り持ってくれる。これは1テーブルだけの関係ではなく、複数のテーブルの関連を定義することができる。 入力されたデータが適切かどうかのバリデーションチェックを行う。 トランザクションのサポートしている。 マイグレーションの機能をサポートしている。これにより、データベースのスキーマの更新が容易になる。 ロックの機能をサポートしている。 導入方法 SQLiteを操作する場合 その他DBについては下記を参照 https://sequelize.org/master/manual/getting-started.html 下記のDBを操作するためのサンプルが乗っている。 Postgres

    Sequelizeを使用してデータベースを操作するための基本的な情報(2020.09更新) - Qiita
  • Node.jsのSequelizeでDBのmigrationを実行する - Qiita

    Node.jsのORMである Sequelize はその基となったActiveRecordと同様にDBのマイグレーション機構も備わっています。 Sequelize のマイグレーション操作についてはまとまった記事が見当たらなかったので後世のために設定から基操作までここに記しておこうと思います。 ここでは接続先のDBとしてPostgreSQLを利用していますが、MySQLSQLiteでも同じ操作でmigrationが実行できます。 実行環境・ライブラリのバージョン情報

    Node.jsのSequelizeでDBのmigrationを実行する - Qiita
  • 5章 EAV (エンティティ・アトリビュート・バリュー) - Qiita

    このようなクエリには、2つの前提条件が必要 値が同じ列に格納されていること 例: Bugs.date_reported GROUP BY で正確に日付をグループ化するために、値が比較できること Bugs.date_reported のフォーマットが揃っている必要がある EAV (エンティティ・アトリビュート・バリュー) と呼ばれるアンチパターンを用いていると、上記の前提条件が成立しない問題に遭遇する 日付が行によって違う列に格納されている 例: date_reported, report_date 日付のフォーマットが異なり、簡単には比較できない 5.1 目的: 可変属性をサポートする バグデータベースの例 Issue (問題) を基底型として、Bug と FeatureRequest (機能要望) のオブジェクトを管理する Issue 基底型 - 共通の属性 Date_reported:

    5章 EAV (エンティティ・アトリビュート・バリュー) - Qiita
    chanpon0
    chanpon0 2016/10/24
    クラステーブル継承
  • Rails だって硬いデータベース設計をしたい!そんなあなたに贈る Tips 4 選 - peroli Developer's Blog

    2016 - 09 - 09 Rails だって硬いデータベース設計をしたい!そんなあなたに贈る Tips 4 選 list Tweet こんにちは、ペロリのサーバサイドエンジニアの @a_suenami です。 今回は Ruby on Rails アプリケーションにおけるデータベース設計についてちょっとご紹介したいと思います。 データベース設計してますか? みなさん、データベース(以下、DB)設計していますか?Scaffold したときにできた migration ファイルをそのまま使ったりしてませんよね? Ruby on Rails (以下、 Rails )は CoC(Convention over Configuration: 設定より規約)を強く提唱している フレームワーク であり、それによって得られる恩恵も大きい反面、かなり強めに設計の自由度を束縛されるという特徴もあります。特に

    Rails だって硬いデータベース設計をしたい!そんなあなたに贈る Tips 4 選 - peroli Developer's Blog
    chanpon0
    chanpon0 2016/10/24
    クラステーブル継承
  • 初心者にわかり易いデータベース入門サイトを紹介して下さい。…

    初心者にわかり易いデータベース入門サイトを紹介して下さい。 図解や挿絵が多いと嬉しいです。 ACCESSを使っている知人からマクロの問い合わせが良く来るのですが、そこまで仕事で使うのならデータベースの基礎を覚えたほうがいいのではと思いました。 正規化やフロー図、SQL、DFDやERなど基礎的な所をわかり易く紹介したサイトがあれば教えてください。

  • DBの基礎 - コネクションプーリングについて

    コネクションプーリングについて、わかっていないことが多すぎたので、ちょっとだけ調べたことをメモで残しておきます。 今はまだ触りレベルしかわかっていなのいので、もう少しちゃんと分かるようになりたい! 😀 [スライド] データベースの羅針盤 コネクションプーリングを調べている過程で偶然見付け足資料 『データベース技術の羅針盤』。 とにかくわかりやすくて、俯瞰的にDBの業界を知ることができる資料。すばらしすぎる。 🎂 コネクション・プーリングとは?DBのコネクションを一定数確立しておいて、それを使いまわす手法のこと。 DBへの接続に必要となるオーバーヘッドをカットしてWeb/DBの双方の負荷を下げる。 また、WebとDBの接続を使いまわすことで同時接続数を節約する。 用意した、コネクション数を超えたアクセスは、コネクションに空きがでるまで待たされる。 以下はOracle関連の話ですが、基

    DBの基礎 - コネクションプーリングについて
    chanpon0
    chanpon0 2016/03/08
  • 2008-06-29

    mysqlを利用していて、indexをちゃんと張っているのにパフォーマンスが出ない。 explain でも type = ref / key = INDEX 等が表示されているのにすごくクエリーが遅かったりする。 思い切って index を消したら逆にパフォーマンスが改善した! why? データ件数が数万件を越えたあたりからパフォーマンスが劇的に下がった。 と、悩んでいたりしませんか? そんな悩みのひとつの解決策になってくれるかもしれません。 テストは vmplayer 上の debian etch で行います。 ホスト環境 intel Q6600 メモリ2Gの WindowsXPです。 クエリーをキャッシュされないように、クエリキャッシュを 0 にします。 /etc/mysql/my.cnf query_cache_size = 0 #no cahce debug swapで遅くなると困

    2008-06-29
  • DeNA松信さんの「MySQL環境におけるFusion-io検証結果とDeNAにおける活用価値」セッションメモ - 元RX-7乗りの適当な日々

    弊社の一部のサービスでも絶賛活躍中のFusion-io社のioDrive。 Fusion-io ioDriveとFusion-io ioDrive Duoではどちらも、最小容量のモデルはSLC型、そのほかはMLC型を使っているが、Fusion ioDriveの読み込み速度は735〜770MB/s、書き込み速度は510〜750MB/sだ。Fusion ioDrive Duoに至っては、読み込み速度は1.0〜1.5GB/s、書き込み速度は一律1.5GB/sという数値をたたき出す。 @IT Special PR:Fusion-ioのクールな技術を使いこなせ! 今日はデルさん主催の下記セミナーにて、このFusion-ioに関するDELL社の検証結果紹介や、DeNA松信さんによるMySQL環境でのFusion-io検証結果およびDeNAでの利用に関するお話が聞けるとのことだったので、途中からの参加で

    DeNA松信さんの「MySQL環境におけるFusion-io検証結果とDeNAにおける活用価値」セッションメモ - 元RX-7乗りの適当な日々
    chanpon0
    chanpon0 2013/08/13
    HDD→Strageにするとこんなに...!
  • [ThinkIT] 第13回:ハードウェア冗長化 (1/4)

    これまでの連載では、LifeKeeperの機能を使用した各種アプリケーションやストレージの冗長化の手法を紹介してきた。今回はハードウェアそのものの冗長化というテーマで、LifeKeeperと親和性の高いハードウェア冗長化の手法について紹介する。 ここで一度、システム構成全体におけるLifeKeeperの守備範囲を確認しておきたい。 図1は比較的一般的な、AP(アプリケーション)サーバとDB(データベース)サーバによる冗長化構成のイメージ図である。なおネットワーク機器については詳細を省かせていただいた。 図1の緑色の枠でくくられた部分については、ファイアウォールやロードバランサといったネットワーク機器で冗長性が確保されており、APサーバへの負荷分散が行われている。この場合、外部からのアクセスを受け付けるグローバルアドレスはファイアウォールに割り振られている。 LifeKeeperが保護対象

  • category/データベース/MySQL - ペンギンの杜 〜 Linux ソフト集 〜

  • フリーソフト データベース開発の必需品 黒猫 SQL Studio : SEが薦める役に立つフリーソフト&ソフト

    SEが薦める役に立つフリーソフト&ソフト 無料のフリーソフトから有料のソフトウェアまで様々なソフトが豊富に存在します そこでSEオススメの役に立つソフト&情報を紹介! このサイトを見ていてくれている人の中でデータベースに関わってい人はどれぐらいるでしょうか?筆者もSqlServer ORACLE MySQL Accessなどさまざまなデータベースを使用します(最近はSqlServerがほとんどですが・・・汗)大体データベースごとにさまざまな便利な開発環境がついており便利にSQLを作成し実行することができるのですが、開発環境がインストールされていなかったりMSDEのようなそもそも開発環境が存在しないデータベース環境で作成が必要なことがしばしばあります。もちろん「コマンド プロンプト」を使用しコマンドで作業することは可能なのですが、便利な環境で作成し実行することになれた筆者のような人間には苦痛

    フリーソフト データベース開発の必需品 黒猫 SQL Studio : SEが薦める役に立つフリーソフト&ソフト
  • カラムを追加する方法【MySQL】 - Programming Magic

    MySQLでは以下のようなクエリーでカラムを追加することができる。 ALTER TABLE <テーブル名> ADD <カラム名> <型情報>; ALTER TABLE test ADD name varchar(255); ALTER TABLE test ADD num int unsigned; ALTER TABLE sample ADD address varchar(1023) NOT NULL; また、以下のようにカラムを追加する位置を指定することもできる。 ALTER TABLE <テーブル名> ADD <カラム名> <型情報> AFTER <カラム名>; ALTER TABLE <テーブル名> ADD <カラム名> <型情報> FIRST; ALTER TABLE test ADD comment text AFTER name; ALTER TABLE test ADD

    chanpon0
    chanpon0 2011/04/06
    alter tableで位置指定して項目追加(挿入)
  • 第1回 記憶装置のトレードオフとバッファの考え方―すべてをとることができないとき (1) | gihyo.jp

    はじめに 意思決定に関する最初の原理は、「⁠無料の昼(フリーランチ)といったものはどこにもない」ということわざに言い尽くされている。自分の好きな何かを得るためには、たいてい別の何かを手放さなければならない。意思決定は、一つの目標と別の目標の間のトレードオフを必要とするのである。 ─⁠─ N.Gregory Mankiw この講座は、システム開発で必ずといってよいほど利用されるリレーショナルデータベース管理システム(RDBMS)について、普段あまり意識しない内部のアーキテクチャやストレージのしくみについて解説することで、みなさんのデータベースについての理解を深めてもらうことを目的としています。 開発現場でみなさんを助ける知識が身につくよう、理論と実践のバランスを取りながら進めていきたいと考えています。また、基的に特定のDBMSには依存しない、汎用的な内容を心がけています。もちろん、そうは

    第1回 記憶装置のトレードオフとバッファの考え方―すべてをとることができないとき (1) | gihyo.jp
  • MySQL :: MySQL 8.0 リファレンスマニュアル :: 4.5.4 mysqldump — データベースバックアッププログラム

    mysqldump クライアントユーティリティは logical backups を実行し、元のデータベースオブジェクト定義およびテーブルデータを再現するために実行できる一連の SQL ステートメントを生成します。 別の SQL サーバーにバックアップまたは転送するために、1 つ以上の MySQL データベースをダンプします。 mysqldump コマンドは、CSV、その他の区切り文字で区切られたテキスト、または XML 形式でも出力を生成できます。 複数のスレッド、ファイル圧縮、進捗情報の表示、および Oracle Cloud Infrastructure Object Storage ストリーミングや MySQL データベースサービス 互換性チェックおよび変更などのクラウド機能で並列ダンプを提供する MySQL Shell dump utilities の使用を検討してください。 ダン

  • 限界までMySQLを使い尽くす!!

    どこまで出来るか?!やれるところまでやってやるぜ!!と、威勢が良いのは若い間だけの話。オトナのオトコは、攻めるときはとことん攻めるが自らの限界もわきまえて賢く振る舞うのがスマートってものである。というわけで、今日はMySQLのいろいろな限界についてまとめてみる。皆さんも是非MySQLの限界を知り、MySQLをもっとスマートに使って頂きたい。 SQL文の最大長 MySQLサーバーが実行出来るSQL文の最大長は、max_allowed_packetシステム変数で表される。max_allowed_packetの最大値は1GBである。max_allowed_packetの値はセッションごとにも設定可能なので、デフォルトではそこそこの値(16MBなど)に設定しておいて、必要に応じて大きな対を使うと良いだろう。 データベースの個数 データベースオブジェクトの個数に制限はない。データベースオブジェクトは

    限界までMySQLを使い尽くす!!
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    chanpon0
    chanpon0 2010/12/02
    速度 速さ
  • ER図作成・データベース設計ツール SI Object Browser ER

    chanpon0
    chanpon0 2010/11/09
    親子
  • プリペアドステートメント - データベース接続(PEAR::DB) - PEAR入門

    例えば何行ものデータを挿入する場合を考えて見ます。値だけ異なるようなSQL文を何度も実行する場合、プリペアドステートメントを使うと便利です。 プリペアドステートメントを使う場合には"query"メソッドの代わりにDB_commonクラスで用意されている"prepare"メソッドを使います。 prepare resource prepare (string $query) execute() で実行できるように、SQL 文を 準備します。 パラメータ: string $query 準備するクエリ。 返り値: resource - クエリのハンドル、あるいは失敗した場合に DB_Error オブ ジェクトを返します。 使い方は"query"メソッドでプレースホルダーを使った場合と同じです。何度も繰り返し使われるSQL文の中で、毎回異なる値の部分を「?」で置き換えて指定します。 $sql = "

  • プリペアードステートメントとは : JavaA2Z

    あらかじめ準備されたSQL。 複数のSQLを実行する場合に、検索条件や更新する値のみが異なる場合に、その値をパラメーター化し、SQLを使い回すことができる。このようなSQLを「プリペアードステートメント」と言う。 プリペアードステートメントは、パラメーター化する箇所を「?」(ハテナマーク)で記述する。SELECTの場合には「SELECT 列名, ... FROM テーブル名 WHERE 列名 = ?」のような形式にする。SQL実行時に「?」に「100」という値をセットした場合には「SELECT 列名, ... FROM テーブル名 WHERE 列名 = 100」というSQLが作られ実行されることになる。 JDBCを使用する場合、プリペアードステートメントは、ConnectionインターフェイスのprepareStatement()メソッドでSQLを指定して作成する。 このメソッドの戻り値と

  • ZendFrameworkでZend_Dbを利用してデータベースに接続する | WEBサービス創造記

    データベース抽象化レイヤについて ZendFrameworkでデータベースに接続したり、クエリを送信したりする場合はデータベース抽象化レイヤと呼ばれるものがインターフェースとして利用されます。 データベース抽象化レイヤとは、異なる種類のデータベースを一元的な操作感で利用できるようにするためのものです。 例えば、PHPではMySQLに接続する場合はmysql_connect関数を使用します。一方、PosgreSQLに接続する場合はpg_connect関数を使用します。 データベース抽象化レイヤを利用しないでコーディングするには、このようなデータベースの種類に依存した関数を利用することになり、後々システムのデータベースを変更した場合は、それに伴ってデータベース関数もすべて書き換える必要が出てきます。 データベース抽象化レイヤを利用すると、データベースの種類に依存しないコーディングを行うことがで