Copyright © 2004-2024 Impress Corporation. An Impress Group Company. All rights reserved.
Copyright © 2004-2024 Impress Corporation. An Impress Group Company. All rights reserved.
MySQL 5.7 was released on October 19, 2015. The document discusses exploring new features in MySQL 5.7 such as the sys schema, full-text search improvements including ngram parsing, and enabling the MeCab plugin for Japanese morphological analysis in full-text searches. It provides steps to install MySQL 5.7 on CentOS, set the initial root password, change validation settings, and optimize the ful
第32回 PostgreSQL 勉強会(2015年10月10日)で登壇してきました。 内容は前に書いたエントリーの MySQL使いが知るべきPostgreSQLとの違いと変わらない一つのこと MySQL使いの人がPostgreSQLを始めるときの罠をまとめてみた を元に発表してきました。 と言っても今回は参加者がPostgresSQLに詳しい前提だったのでMySQLを中心に話をしました。 実際の資料は下記のとおりです。 当日はビデオ撮影があったのでそのうち動画が上がると思います。 第32回 PostgreSQL 勉強会まとめ ~ togetter ~ 流石に2時間は疲れました。 内容としては眠くならないように面白おかしく伝えようと思ったのですがなかなか難しかったです。 前半はMySQLとPostgreSQLの方向性の違いをメインにしました。 後半はMySQLは僕が実際にハマった事などをメイ
たとえば、MySQL を使ったお手軽メッセージキュー実装 - ドワンゴ 研究開発ブログに出てくるようなInnoDBをメッセージキューのように使っているときに、キューにどれだけメッセージが溜まってるかを確認したいとき、普通に考えるとCOUNTすると思う。 SELECT COUNT(*) AS count FROM test_queue;この軽い気持ちでしたCOUNTが、もしうっかりキューに100万レコードぐらいあったりするとInnoDBだとPRIMARYキー総なめとかしちゃってレスポンスにかかる0.1秒ぐらいのあいだ罪悪感に苛まれることでしょう。 このとき冷静に考えると、もしキューが1件も処理されていなければ、idはauto_incrementなので特に細工していなければ SELECT MAX(id) AS count FROM test_queue;これも全体のレコード数に等しいでしょう。
InnoDBを使うとき、MyISAMと比較して度々やり玉に挙げられるポイントとして「COUNT()が遅い」というものがある。確かにInnoDBにおいて行数を弾き出すのにはテーブルスキャンが必要なのだが、そもそもMyISAMのCOUNT()が速い(テーブルの行数を保持してる)のが特殊なのであって、InnoDBが遅いわけではないのである。とはいえ、高速なCOUNT()については需要が多く、この問題には多くの人取り組んでおられるようだ。しかしながら、COUNT()のチューニングについては未だ語られていない点があるように見受けられるので、今日はCOUNT()のチューニングについて解説しようと思う。 COUNT(*)、COUNT(col)、COUNT(1)の違い基本的なことではあるが、COUNT(*)とCOUNT(col)では意味が異なるため、異なる結果が返される場合がある。COUNT(*)はフェッ
LOAD DATA INFILEで複数のファイルを順番(じゃなくてもいいけど)食わせる場合を考える。 ↓こんなかんじ $ ll *.tsv -rw-rw-r-- 1 mysql mysql 541810051 Sep 16 10:51 20140912.tsv -rw-rw-r-- 1 mysql mysql 523910384 Sep 16 10:52 20140913.tsv -rw-rw-r-- 1 mysql mysql 513351897 Sep 16 10:53 20140914.tsv -rw-rw-r-- 1 mysql mysql 513221906 Sep 16 10:54 20140915.tsv 無圧縮なファイルなら、シェルでぐるんぐるん回すのが便利。 $ for f in *.tsv ; do > mysql -sse "LOAD DATA INFILE $f I
MySQL 5.7には150を超える新機能がある。 MySQLのマニュアルはとてもいいものだが、少し長すぎる。これは、新機能の箇条書きリストだ。それぞれの機能について1つずつまとめるように頑張ってある。なので、 InnoDBのネイティブパーティショニング については、InnoDBの項かパーティショニングの項のどちらかにだけ載っている。 MySQL 5.7.8 RC2はここからダウンロードできる それか、yumかaptのリポジトリーからもインストール可能だ。 レプリケーション関連 マルチソースレプリケーション(訳注: 1スレーブに複数マスターを設定可能になった) [ 1 ] オンラインでのGTIDの有効化 [ 1 2 3 ] 準同期レプリケーションの性能向上 [ 1 2 ] ロスレス準同期レプリケーション [ 1 2 ] 準同期レプリケーションでいくつのスレーブからACKが返ってくるまで待つ
pt-online-schema-change¶ NAME¶ pt-online-schema-change - ALTER tables without locking them. SYNOPSIS¶ Usage¶ pt-online-schema-change alters a table’s structure without blocking reads or writes. Specify the database and table in the DSN. Do not use this tool before reading its documentation and checking your backups carefully. Add a column to sakila.actor: RISKS¶ Percona Toolkit is mature, proven i
MySQLに関するブログを書かれている(というか中の人?)Dimitriさん作成のdimSTATのインストール手順についてまとめます。確認した環境は全てCentOS6(64bit)です。 URLはこちら(Dimitri (dim) Tools HOMEPAGE)。 Dimitriさんのブログはこちら(DimitriK's (dim) Weblog) dimSTATはDimitriさんのブログに登場するグラフを生成してくれるリソースモニタです。 Performance Schemaのデータも割りと簡単にグラフ化出来るので性能測定の際には非常に便利なツールとなっています。 事前準備 compressコマンドのインストールとアカウント作成 インストール時にcompressコマンドが入っているかチェックされ、入っていない場合はパッケージに含まれるcompressコマンドがインストールされるようでし
— そーだい@初代ALF (@soudai1025) 2015, 8月 24 とブーメラン投げて見事に刺さってるので今から記事書く。 両サイドにはかなり厳しい話もするが俺の本音を聴いておけ(関白宣言) まぁ歴史の長いRDBなのでお互いの比較記事は沢山ある。 なのでマルチスレッド(MySQL)とマルチプロセス(PostgreSQL)だとかVACUUMだって話はしない。 むしろ実際に使ってみた際の違いをにフォーカスする。 1. SQLの違い 基本的にMySQLでやっていたことはPostgreSQL出来る。 しかし関数の挙動の違いは幾つかある。 例えば時間から曜日に該当する数字に変換した場合に MySQL → date_format(time,"%w") 0から始まり、日曜日に該当する PostgreSQL → to_char(time,'D') 1から始まり、日曜日に該当する など挙動に互換性
2015/08/22 YAPC::Asia Tokyo 2015 Lightning Talk 2016/01/13 update about default_password_lifetime will be 0Read less
よくMySQLはゆるふわだから 値が勝手に切り詰められる エラーが起きずに変な値/日付が入る 不正なスキーマが入ってしまう など言われることがあります。ただそれは、そもそもの設定が悪いのです。(確かに昔デフォルトがゆるふわなのはいけなかったんですが) ということで、データベースには不正な値が入らないように設定はとにかく厳しくしておくのがオススメです。 じゃあどうするか。 MySQLはSQL Modeによって、その辺りの制約をコントロールすることができます。以前、MySQLのsql-modeで一番厳しいやつはTRADITIONAL、というのを書いたのですが、実はそれだけでは不十分で、TRADITIONAL,NO_AUTO_VALUE_ON_ZERO,ONLY_FULL_GROUP_BYとするのがより安心なようです。 これはkamipoさんに教えてもらいました。 @songmu TRADITI
Description: Running 5.5.14 in read only we can create temporary tables but can not insert or update records in the table. When we try we get Error 1290 : The MySQL server is running with the --read-only option so it cannot execute this statement. In prior versions it was possible to perform these operations and the 5.5 manual indicates this should continue to be true. How to repeat: 1. Install 5.
とあるブログエントリで「ナチュラルキーを主キーにしてはいけない」という主張を見かけたのでこれに反論しておく。これはリレーショナルモデル的には明らかに間違った考えだからだ。 リレーショナルモデルにあるのはナチュラルキーだけリレーショナルモデルには「サロゲートキー(代理キー)」という概念はない。まずこの点に注意して頂きたい。サロゲートキーとは、データベースアプリケーション開発において実用上必要とされる機能であって、本質的には不要のものである。リレーショナルモデルでは、いわゆるナチュラルキーというものがあれば機能的には十分だからだ。 そのためにはまず「キー」という概念が何を指し示すかということについて正しく理解しなければならない。リレーショナルモデルではキーと呼ばれるものは候補キーとスーパーキーという2つの概念だけである。「タプル(≒行)の値を一意に決定することができる属性(≒カラム)の集合」の
データ件数が大量に(レコード数100万以上とか)ある場合、ALTER TABLE時にテーブルの書き込みロックが無視できないレベル(時間)で発生します。 テーブルの書き込みロックについて MySQL5.5以前: ALTER TABLE時に発生 MySQL5.6以降: ALTER TABLEでカラムのデータ型変更、全文検索用インデックスの追加、プライマリキーの削除、文字コードの変換/指定 を行った時に発生 参考: http://takatoshiono.hatenablog.com/entry/2015/03/11/013316 pt-online-schema-changeを使用することで、テーブルロックなしでのALTER TABLEができます。 pt-online-schema-changeのインストール方法(Mac homebrew) $ brew install percona-too
(いまだに時々ブクマされていたりしますが、これはバグで MySQL 5.5.21 以降では修正されています。) mysqldump は MySQL のデータのバックアップを取得するコマンドです。 mysqldump に --single-transaction を指定すると一貫性を保持したバックアップを取得することができます*1。 この時に mysqldump が発行しているクエリは次のような感じです。 [mysqldump --single-transaction DB名] SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ START TRANSACTION WITH CONSISTENT SNAPSHOT UNLOCK TABLES DB選択 テーブルからデータの読み込み「START TRANSACTION WITH CON
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く