タグ

databaseに関するhideharaのブックマーク (36)

  • PostgreSQL と MySQL の決定的な違い

    : PostgreSQLMySQL の概要 PostgreSQLMySQLの基的な概要と歴史から始めましょう。すでに基的なことを知っている場合は、このセクションは飛ばしてください。初心者の方はこのセクションをお読みください。 MySQL とは MySQLは、世界で最も一般的に使用されているリレーショナルデータベース管理システム(RDBMS)です。2023年に開発者の間で2番目に高い使用率を誇るこのオープンソース RDBMS は、高速で信頼性が高く、安定したセキュアでスケーラブルなデータ管理を組織に提供することで知られています。 MySQLは、スケーラブルな Web アプリケーションに最適な選択肢です。MySQLはLAMPスタックに標準搭載されています。LAMPスタックはウェブ開発で非常に人気があります。これは、Linux、Apache HTTP Server、MySQL、P

    PostgreSQL と MySQL の決定的な違い
    hidehara
    hidehara 2021/03/25
    PostgreSQL 10 と MySQL 8 の比較だと表の機能面の違いは、ほぼないのかな?目的に応じて、内部構造の違いの特性で選ぶといいのかなって気になってきた。ORDBMSを理解しないとだなー
  • ホント信じられないDB文化だけど、統計情報固定化はマジでアリ - レベルエンター山本大のブログ

    信じられないDB文化「固定長DB」でもあうんです。大規模コンシューマ向けサービスのRDB設計 - 山大の日記に引き続き、大規模コンシューマ向けサービスのRDBの意外な使い方について。 僕らのサービスでは、統計情報を手作業でセットして固定化していた。 こんなことは普通やらないけれど、しかしながら非常にシステムのパフォーマンスを安定させるのに効果があった。 Oracleの統計情報(オプティマイザ統計情報)とは まず統計情報とは何かというところから始める。 統計情報とは、正式名称「オプティマイザ統計情報」といい、OracleSQLを解析して最適な実行計画を作成するために利用する情報である。 実行計画を作成する機能のことをCBO(コスト・ベース・オプティマイザ)という、このオプティマイザ向けの統計的な情報だから、オプティマイザ統計情報と呼ばれる。 統計情報の実体は何かというと、データベースの各

    ホント信じられないDB文化だけど、統計情報固定化はマジでアリ - レベルエンター山本大のブログ
    hidehara
    hidehara 2020/10/08
    これを読んで、DBMS勉強すれば、もっとできること増えるって感じれた。スキーマが固定で、データが予測できるなら、統計情報を固定するという技もあるのか。
  • MySQL - InnoDB データファイルをテーブル単位に変更!

    mk-mode.com Linux, Debian, IT, Server, PG, Ruby, Rails, Python, C++, Fortran, PC, MariaDB, math, GIS, etc... MySQL でストレージエンジンに InnoDB を指定していると、データファイル・ログファイルが作成されます。 デフォルトでは、データファイル(ibdata1)はデータベースが複数あっても1つのファイルとして作成されます。 これだと、データベースが複数あったりサイズが膨大になったりすると、パフォーマンスが悪くなるだけでなく管理も煩雑になってしまいます。 設定ファイルに innodb_file_per_table を設定することで、このデータファイルをテーブル単位で管理できるようになります。 ただ、既にデータベースを InnoDB で運用している場合は、今後作成するテーブルに

    MySQL - InnoDB データファイルをテーブル単位に変更!
    hidehara
    hidehara 2017/02/26
    おお、なるほど。mysql の dump は SQL文なので、再投入すれば、このようなメンテナンスも可能かぁ。
  • MySQL データベースに大量のテーブルを置いたらパフォーマンスが落ちた話 | バシャログ。

    仮面ライダーエグゼイドのあの仮面ライダー離れしたまなざしにはあと何週間で慣れるだろうか、とぼんやり考えている kagata です。 さて、今回は最近遭遇したデータベースの障害についてのお話です。 事例 こんな構成のデータベースサーバがありました。 ストレージタイプ「汎用(SSD)」の Amazon RDS MySQL 5.6系 ストレージエンジンは InnoDB File-Per-Table モードが有効 あるとき、このサーバのパフォーマンスが急に落ちるということがありました。システムに大きな変更は入れていないはずなのに、スロークエリが急に増えてしまいました。 サーバの状態を確認したところ、下のような警告を出力しているのが見つかりました。 DB Instance * has a large number of tables and has the parameter innodbfilep

    MySQL データベースに大量のテーブルを置いたらパフォーマンスが落ちた話 | バシャログ。
    hidehara
    hidehara 2017/02/26
    MySQL の Innodbデフォルトは全データベースを1つのファイルに。複数に分けることも可能だが、それぞれ特性があるのでよく検討。ということですね。とりあえず複数ファイルの場合は数百程度のDB数?
  • データベースとテーブルのサイズを確認する方法 - Simple, Slowly

    テーブルのサイズはphpMyAdminでも見れますが、コマンドから見れたほうが何かと便利なので、調べてみました。 全てのデータベースのサイズを確認する # MB単位 select table_schema, sum(data_length+index_length) /1024 /1024 as MB from information_schema.tables group by table_schema order by sum(data_length+index_length) desc; +--------------------------+---------------+ | table_schema | MB | +--------------------------+---------------+ | database1 | 5579.89978790| | databas

    データベースとテーブルのサイズを確認する方法 - Simple, Slowly
    hidehara
    hidehara 2017/02/26
    MySQL のメンテンナンスによろしいです
  • MySQLでGrant文でユーザを作成するのに違和感を感じる · DQNEO日記

    MySQLの入門記事で、「GRANT文でユーザを作成します」という説明をよく見かけます。 こんなやつ。 GRANT ALL PRIVILEGES ON *.* TO 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード'; 確かにこれでユーザ作成できますが、なんか違和感を感じるんですよね。 その英文からユーザが作成されるようには見えない 英語的になんかおかしい。 英語のGrant = 「許可する」でしょ?「指定したユーザに権限を与える」みたいな英文なのに、ユーザを作っちゃってる。おまけにパスワードも設定しちゃってる。 MySQLはユーザを作る別の方法として CREATE USER というのもある。GRANTでユーザ作れるとしたら、CREATE USERは何のためにあるの?とMySQL初心者の私は混乱してしまうわけです。 そこで公式マニュアルを読んで整理してみまし

    MySQLでGrant文でユーザを作成するのに違和感を感じる · DQNEO日記
    hidehara
    hidehara 2017/02/20
    ああ、納得。 MySQL でユーザー作るときには CREATE USER してから GRANTする。
  • PythonでLevelDBを使ってみる(plyvel) - Qiita

    LevelDBとは? ファイルに保存するタイプのkey-value storeで、key => valueのひも付けを高速に読み書きできるGoogle製のライブラリです。PythonのここではLevelDBをplyvelというライブラリを使ってpythonで使ってみるチュートリアルをご紹介します。(plyvel以外にもPythonのLevelDBライブラリは存在しますが、使ってみた感じplyvelの出来がよさそうでしたので) こういうたぐいのものでは古くはBerkeleyDBや、モダンなものだと日の平林さんが作成されたKyotoCabinetが有名です。サーバ型ではmemcachedやRedisがありますが、LevelDBはサーバ型ではなく、ローカルのファイルを操作するライブラリです。たくさんのサーバ・プロセスなどからkey-valueのデータを共有して保存したいときはmemcached

    PythonでLevelDBを使ってみる(plyvel) - Qiita
    hidehara
    hidehara 2016/03/26
    なるほど、いろいろある。NoSQL使ってみないと。
  • Tokyo CabinetとTokyo Tyrant

    Tokyo CabinetとTokyo Tyrantについて、社内勉強会のために作ったスライドをSlideShareに公開しました。(スライドはKeynote形式でダウンロード可能です)その解説と補足をしておきます。勉強会の目的は、Tokyo CabinetとTokyo Tyrantを大づかみに理解することと、実際にデータ操作をしてみることでした。 http://www.slideshare.net/akirakoyasu/tokyo-cabinet-tokyo-tyrant-10468880 まずはTokyo Cabinet/Tokyo Tyrantとは何なのか、端的に言えば、 Tokyo Cabinet ファイルDB Tokyo Tyrant Tokyo Cabinetを内包したサーバ ということになります。(スライド2-8) Tokyo Cabinet(以下TC)はいわゆるkey-v

    hidehara
    hidehara 2016/03/26
    Tokyo Cabinet(C) -> Kyoto Cabinet (c++) . Tokyo Cabinet だと 古いCentOSにもはいってた
  • Count Number of Words in MySql, MySql Words Count - Web Tech Query

    hidehara
    hidehara 2016/02/04
    MySQL の 特定フィールド内の単語数カウントクエリー。空白の数+1を計算してるので、英文とかには使える。ざっとみるのにいいかも。
  • テーブルの構造を調べる方法あれこれ - Affamative Way

    ちょっと色々と調べていたのでメモ変わりにエントリー テーブルの構造を取得する MySQL AB :: MySQL 5.1 リファレンスマニュアル :: 12.3.1 DESCRIBE 構文 mysql> DESC user; +-----------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+-------------+------+-----+---------+----------------+ | id | int(4) | NO | PRI | NULL | auto_increment | | nick_name | varchar(30) | NO | | | | |

    テーブルの構造を調べる方法あれこれ - Affamative Way
    hidehara
    hidehara 2016/02/04
    MySQL で テーブル構造の確認するとき DESC (Describe構文) 使う。SHOW COLUMNS と同等。SHOW CREATE TABLEしなくても良かったんか。
  • マルチデータベース対応リアルタイムレプリケーションツール | Syniti Replicate

    異種データベース間の双方向に対応したリアルタイムレプリケーション Syniti ReplicateはAS/400・OracleSQL Server・Db2 LUW・MySQLなど多くのデータベースに対応します。 DBの移行・バックアップ・災害対策(BCP)・他システムとの連携にご活用いただけます。 ご検討中の方Syniti Replicateは、多くのメジャーデータベースをサポートし、AS/400とOracleSQL Serverなどのリアルタイム・レプリケーションに多くの実績を持っています。 クラウド移行をご検討中の方クラウドへのDB移行はSyniti Replicateにおまかせください。AWSMicrosoft Azureなどに対応し、オンプレミスからの移行・データ連携・災害対策・オープン化に使用できます。 無料評価版をご希望の方Syniti Replicateを実際に試したい

    マルチデータベース対応リアルタイムレプリケーションツール | Syniti Replicate
    hidehara
    hidehara 2015/12/15
    商用->OSSなどのDBレプリケーションができる .NETドライバ。Windowsをメインにして、スケールアウトでMySQLなどの構成によさそうだな。
  • MySQLのコンソールを便利にするための5つのTips – sawara.me

    MySQLクライアント何使ってますか。え?標準のmysqlコンソール使ってない? CUIはちょっと敷居が高いと思っているあなたのために、mysqlコンソールを便利にするためのTipsを紹介します。 1. 表示結果にページャを設定する コンソールが嫌われる一番の理由に、SQLの検索結果が多いと最初の方の結果が流れていって見えなくなってしまうことにあるのではないでしょうか。そして取得フィールドが多いと画面の右端で折り返されてわけわからん状態に。 そんな時は迷わずpagerにlessを指定しましょう。 pager less -S mysqlコンソール上で上記コマンドを実行するとSQLの検索結果をlessで見ることが出来ます。-Sオプションを指定することで右端で折り返されずに綺麗に表示されます。lessの機能そのまま利用できますので、検索とか出来たり便利です。lessを終了する場合にはqを入力しま

    MySQLのコンソールを便利にするための5つのTips – sawara.me
    hidehara
    hidehara 2015/11/13
    mysql コンソールで less 使えるのね。TAB補完は、手元の5.5では動かなかったが、5.6だと効くのだろうか?
  • テーブル名の変更とカラムの追加

    作成済みのテーブル名を変更するには ALTER TABLE 文を使います。ここでは SQLite で作成済みのテーブルの名前を変更する方法、およびカラムを追加する方法について解説します。

    テーブル名の変更とカラムの追加
    hidehara
    hidehara 2015/11/10
    sqlite には drop column がないので、table copy & rename newone の手順でスキーマ変更した。テーブル名の変更って簡単なのね。
  • mysqlで文字コードをutf8にセットする - Qiita

    mysqlの文字コードはチェックする場所が多いので原因を突き止めるのに毎回苦労します。 大きく二種類に分けられて、 クライアント側、サーバー側(mysqlサーバー)、及びそれらの接続の文字コード データベース/テーブル/カラムの文字コード です。 デフォルトをきちんと設定しておく そもそも作成したDBの文字コードが意図しない設定になっていたら、デフォルトの設定が間違っている可能性が高いので、再度同じ問題を起こさないためにも、設定見直し→DBをdrop→DBcreateという順番で直しに行きます。 1も2もデフォルトの設定は下記を実行すればok。 +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+-----------

    mysqlで文字コードをutf8にセットする - Qiita
    hidehara
    hidehara 2015/10/30
    MySQL の my.ini は、サーバーデフォルトじゃなくて社内標準とかつくっておくのがいいかなぁ?デフォルトの文字コードの取扱が、バージョンやディストリビューションなどで異なってるようだし。
  • MySQLのメモリ設定の勘所 – sawara.me

    MySQLサーバーをダウンさせた夜は数知れず。 その度にmy.cnfの設定を見なおしてみてはトライし、治ったと思いきや突然のダウン。 サーバーがダウンしてしまう原因は何かと聞かれれば、「メモリです」と断言しましょう。 メモリ設定は諸刃の剣。 パフォーマンスを最大に引き出すこともできればそれと引き換えにサーバーをダウンさせてしまうこともできるんです。 今回はMySQLのメモリの設定の勘所というかたちで紹介しようと思います。 グローバルバッファとスレッドバッファ メモリの設定についてまず「グローバルバッファ」と「スレッドバッファ」について理解しておくことが大事です。バッファとは一時的な記憶領域・つまりはメモリの領域のことなのですが。 グローバルバッファ MySQLで使用する全体的なメモリ使用量を計算するには グローバルバッファ + (スレッドバッファ × コネクション数) = メモリ使用量 と

    MySQLのメモリ設定の勘所 – sawara.me
    hidehara
    hidehara 2015/10/16
    MySQLのメモリ設定がわかりやすくまとまってる。グローバル・バッファとスレッド・バッファ。ストレージエンジン別の各種パラメーターなどと。
  • データベース名を変更するには | RISIN'

    2011-02-28  mysql 一度作成したデータベースの名前を変える方法です。バージョンは5.1.41です。 MySQL 5.1.7以前では、RENAME DATABASEを使えば簡単にできたのですが、危険を伴うため5.1.23からこのクエリは使えなくなっています。 This statement was added in MySQL 5.1.7 but was found to be dangerous and was removed in MySQL 5.1.23. It was intended to enable upgrading pre-5.1 databases to use the encoding implemented in 5.1 for mapping database names to database directory names (see Section

    データベース名を変更するには | RISIN'
    hidehara
    hidehara 2015/10/16
    MySQL 5.1.7 までは RENAME DATABASE でデータベースの名前変更が出来たのねぇ。現在は dump & import が必要とのこと。
  • Migrating from sqlite3 to mysql - Redmine

    Given the performance issues we've hit with 0.9.x and sqlite3 as a backend (see here), I've managed to get a good conversion of an sqlite3 dump in to a format that mysql can load to migrate from one to the other. It's attached. Unfortunately its in C# because I had VS2008 to hand, but the source is there and its not long, so I'm sure someone could convert it to a scripting language of your choice

    hidehara
    hidehara 2015/10/16
    sqlite3からMySQLに移行するときのpythonスクリプト。Django使ってて、欲しくなったのよ。
  • Importing sqlite3 to MySQL in a semi non painful way. – frl1nuX

    hidehara
    hidehara 2015/10/16
    sqlite3からMySQLに移行するときのpythonスクリプト。Django使ってて、欲しくなったのよ。
  • クラウドを支える“ゆるさ”

    オブジェクト指向言語「Ruby」の開発者である、まつもとゆきひろ氏が語る日経Linuxの連載記事「技術を斬る」で最近、「BASE」という概念がよく登場する。BASEとは、「Baseically Available」(不整合は滅多に発生しないので可用性を重視し)、「Soft-state」(状態の厳密性を追求せず)、「Eventually Consistent」(途中はともかく最終的につじつまが合えばよい)、という考え方だ。 実は、クラウドを支えているのは、この“ゆるい”考え方にほかならない。 トランザクションはもう古い? BASEは、トランザクションの概念が大量の情報を処理するシステムには適さない、という考えから登場してきた。データを正しい状態で維持するために必要なACID特性、すなわちA(原子性)、C(一貫性)、I(独立性)、D(永続性)を、大規模な分散処理では維持できないという「CAP定

    クラウドを支える“ゆるさ”
  • サン・マイクロシステムズ

    のオラクル・コミュニティが一堂に会するプレミア・イベントにぜひご参加ください。新しいスキルを身に付け、業界エキスパートと交流し、複雑なビジネス課題を解決するためのソリューションを発見しましょう。

    hidehara
    hidehara 2009/10/01
    SQL/Oracleそれぞれの製品理解が進みます