2033 件中 1411 - 1420 件を表示
« 前の 10 件 | 次の 10 件 »
Displaying posts with tag: MySQL (reset)
CentOS6にMySQL-5.6.10/5.6.11をオラクル公式rpmを用いてインストールする方法

CentOS-6.xの環境にオラクル公式のMySQL-5.6バイナリをyum(rpm)で入れる方法を紹介します。

  • 追記(2013年5月1日)
    MySQL-5.6.11がリリースとなりました。
    以下の5.6.10を5.6.11に書き換えれば同様に動く事を補足します。

想定環境

CentOS-6.4 (x86_64)

事前準備

MySQLのrpmを何らかの手段で用意します。

今回は …

[さらに読む]
information_schema.INNODB_BUFFER_PAGEのACCESS_TIMEが何か変な件

取り敢えずBugsにも上げたんですけど、エスパーさんでないと伝わらない気がしています。

http://bugs.mysql.com/bug.php?id=68981


MySQL 5.6.2, 5.5.28, 5.1.66に搭載された新しいinformation_schema、INNODB_BUFFER_PAGEとINNODB_BUFFER_PAGE_LRU。
⇒ http://yoku0825.blogspot.jp/2013/02/informationschemainnodbbufferpage.html

これの中身をちょこちょこ確認していたところ、どうにも`ACCESS_TIME`が納得のいく値にならないことに気付いた。


mysql56> DESC INNODB_BUFFER_PAGE;
+---------------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | …
[さらに読む]
MySQL 5.5.28とMariaDB 5.5.28aのmysqldumpを読み比べてみる(binlog_snapshot_%変数というのがある)

--master-dataのオプションの説明にこんなことが書いてある。
on servers before MariaDB 5.3 this will still take a global read lock for a short time at the beginning of the dump;
MariaDB 5.3以降だとFLUSH TABLE WITH READ LOCKしないのか?
 ⇒しない。START TRANSACTION WITH CONSISTENT SNAPSHOTの時に
  binlog_snapshot_fileセッション変数とbinlog_snapshot_positionセッション変数に
  値を自動的に格納してくれる。すご。
  https://kb.askmonty.org/en/enhancements-for-start-transaction-with-consistent-snapshot/
  ⇒対応していないバージョンの場合、オプション解析中にFLUSH TABLES WITH READ LOCKが
   必要な分岐に流れる。



527c531,532
< …

[さらに読む]
MySQL の "Illegal mix of collations" エラーについて

MySQL で「Illegal mix of collations」というエラーが出ることがあります。テーブルの charset と接続の charset 等、すべてを utf8 などで統一してれば出ないので、あまり見ることはないかもしれません。

私はカラム毎に charset を指定することがあるので、時々このエラーにハマります。

たとえば、次のようなテーブルを作ったりします。

CREATE TABLE users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  email VARCHAR(320) CHARSET ascii UNIQUE,
  name VARCHAR(30) CHARSET utf8
);

メールアドレスの規約は、ローカル部が最大64バイト、ドメイン部が最大255バイト、それと @ の1バイトで合計最大320バイトなので、 VARCHAR(320) にします。UNIQUE インデックス持つカラムを utf8 charset で …

[さらに読む]
REPLACE INTOが実はINSERT + DELETEだったと思ったら、結局DELETE + INSERTだった

REPLACE INTOが実はINSERT + DELETEだった(INSERTが先で後から消す)の続き。

REPLACE INTOは「DELETE + INSERT(その行を消してからもう一度書く)」だと今まで思っていたけれど、
実は「INSERT + DELETE(行を突っ込んでから古い行を消す)」な動きっぽいというはなし。

そっちが先なんだびっくりー、という感じで書いたのですが、
色々手落ちがあったので後から調べたことをメモ。


1) その結果だと時間が一緒だから、「DELETEトリガーがINSERTトリガーより先」というのは断言できない。順番は必ずしも保証されないから。
⇒TRIGGERの中身をSYSDATE(6)に書き換えてみました。

mysql56> …
[さらに読む]
REPLACE INTOが実はINSERT + DELETEだった(INSERTが先で後から消す) 間違ってました。。

「INSERT .. ON DUPLICATE KEY UPDATE ..でクエリを投げているけど、99%くらいはUPDATEになっている」
「UPDATEを直接投げた方が速かったりする?」
「極端にパフォーマンス違うんだったら、UPDATEが転けてからINSERTする方式も考える」

とか聞かれたのでINSERT .. ON DUPLICATE KEY UPDATEについて調べてたんですが、
ソース読んでたら豆知識に出会ったのでメモ。

5.6.10のsql/sql_insert.ccの中でゴニョゴニョしている気配があるけど、write_record関数の中で

table->file->ha_write_row(table->record[0]してみる。
⇒何もないINSERTだとエラーになったらエラー。
⇒REPLACE INTO, INSERT .. ON DUPLICATE KEY UPDATEだと
それぞれHA_ERR_FOUND_DUPP_KEYを引っ掛けてハンドルしている。

[さらに読む]
pt-duplicate-key-checkerが快適

Percona Toolkitのひとつpt-duplicate-key-checker。
名前の通り、重複したインデックスをチェックしてくれる。

$ pt-duplicate-key-checker S=/usr/mysql/5.5.30/data/mysql.sock,u=tpcc,p=xxxx --database=tpcc

# ########################################################################
# tpcc.stock
# ########################################################################

# s_w_id is a left-prefix of PRIMARY
# Key definitions:
#   KEY `s_w_id` (`s_w_id`),
#   PRIMARY KEY (`s_w_id`,`s_i_id`),
# Column types:
#         `s_w_id` smallint(6) not null
#         `s_i_id` int(11) not null
# To remove this duplicate index, execute:
ALTER TABLE `tpcc`.`stock` DROP INDEX `s_w_id`;

[さらに読む]
OSS貢献者賞を頂いたので昔話をします

この記事は、おっさんの自分語りと昔話なので、あまり読む価値はないです。

もう1ヶ月くらい前になるのですが、OSS貢献者賞を頂きました。

最近はあまりOSSに貢献するようなことをしてる自覚はなかったので、なぜ自分が候補にあがったのか謎でした。OSS貢献者賞のページによると、

影響力のある開発プロジェクトを創造、運営した開発者やグローバルプロジェクトにおいて活躍する卓越した開発者及び普及に貢献した方を表彰するもの

[さらに読む]
INFORMATION SCHEMA [MySQL 5.1.66以降+InnoDB Plugin、5.5.28以降、5.6以降の場合]

情報スキーマ(INFORMATION SCHEMA)はバージョン毎にテーブルが追加されていっています。 首記のバージョンで追加されたのは、次のものです。

[追加された3個のテーブル]
+---------------------------------------+
| Tables_in_information_schema          |
+---------------------------------------+
| INNODB_BUFFER_PAGE_LRU                |独自: InnoDBバッファプールページLRU情報
| INNODB_BUFFER_POOL_STATS              |独自: show engine innodb status;相当の情報
| INNODB_BUFFER_PAGE                    |独自: InnoDBバッファプールページ情報
+---------------------------------------+
40 rows in set (0.00 sec)

これらはまず5.6に実装されてバックポートされたものです。

5.6ではさらに20個(I_S総数でMySQL 5.5では40個、MySQL 5.6では60個)のテーブルがありますので、 …

[さらに読む]
バイナリログやスローログを見やすくするワンライナー

バイナリログやスローログを遡って更新履歴をチェックしたりする時に(個人的に)面倒なのが、
`こいつらはSQLステートメントの改行を反映するし、インデントもしっかり記録してくれる'こと。

grep -v "INSERT INTO t1"とかやっても、"VALUES"の手前で改行してインデントするような
小綺麗に書かれたコードだと上手く引っ掛けにくい。
個人的にはインデントあった方が好きだけど、大量のログを見る時には不向き。

なので1分で考えたワンライナー。

perl -e '$/="#"; while(<>) { s/[ \n\r\t]{2,}/ /g; print $_;}' | egrep -iv '^SET (TIMESTAMP|.+session\.|INSERT_ID)|^/\*|^BEGIN|^COMMIT|^DELIMITER' | grep '^[^#]' -B1


[さらに読む]
2033 件中 1411 - 1420 件を表示
« 前の 10 件 | 次の 10 件 »