Community journal

The latest from the MySQL community

Ideas, releases, practical guides, and perspectives from the people building with MySQL.

Follow the feed
Showing entries 1551 to 1560 of 3187 « Previous | Next »
innodb_file_format= AntelopeとBarracudaが混じっても特に問題がない

というか混じりようがない。

innodb_file_format はそもそも.ibdファイルだけに利くパラメーターであり、innodb_file_per_table が無効の場合は勝手にAntelope相当の状態にフォールバックされる。

mysql56> SET GLOBAL innodb_file_per_table= 0;
Query OK, 0 rows affected (0.05 sec)

mysql56> SET GLOBAL innodb_file_format= Barracuda;
Query OK, 0 rows affected (0.03 sec)

mysql56> CREATE TABLE t1 (num int) ROW_FORMAT= Dynamic;
Query OK, 0 rows affected, 2 warnings (0.59 sec)

mysql56> SHOW WARNINGS; …
[さらに読む]
MySQL 5.5以降のutf8mb4とPerlのDBD::mysqlのmysql_enable_utf8のワナ

結論から言うと、ひろせが望ましいと思う順にこうすればいいんじゃないの?ってのを列挙します。

  1. my.cnfに[libmysqlclient]グループを追加しそこにdefault-character-set = utf8mb4と書き、DBD::mysqlでは mysql_read_default_file=/etc/my.cnf;mysql_read_default_group=libmysqlclient と指定する
    • mysql_enable_utf8を使いたい場合はSET NAMES指定も必要
  2. my.cnfの[client]グループにdefault-character-set = utf8mb4と書き、DBD::mysqlでは …
[さらに読む]
innodb_rubyでfast index creationとそうでないのを比べてみる

や、MyNA会でデモした時にむしろこれをやれよって話なんですが。

InnoDB Plugin以降で加わったInnoDBのfast index creationと、それまでのインデックス作成について、innodb_rubyを使って比べてみました。

まずは最初にロードを済ませてから、後からfast index creationでインデックスを作るパターン。


master [localhost] {msandbox} (d1) > CREATE TABLE t1 (num int unsigned primary key, val varchar(32) not null);   
Query OK, 0 rows affected (0.02 sec)

master [localhost] {msandbox} (d1) > LOAD DATA INFILE '/tmp/md5_10000' INTO TABLE t1;
Query OK, 10000 rows affected (0.17 sec)
Records: 10000 Deleted: 0 Skipped: 0 Warnings: 0

$ innodb_space -f d1/t1.ibd space-extents-illustrate

Start Page …
[さらに読む]
MySQLユーザーのためのPostgreSQL対応表

毎回わからなくなってググってるから今度からここに追記していく。

…
MySQL PostgreSQL
SHOW DATABASES; \l
USE dbname \c dbname
SHOW TABLES; \dt
SELECT * FROM tblname\G \x on
SELECT * FROM tblname;
SELECT * FROM information_schema.processlist; SELECT * FROM pg_stat_activity;
KILL <pid>; SELECT pg_terminate_backend(pid);
[さらに読む]
MySQLユーザーがPostgreSQLを触ってみたメモ

最近なぜか MySQL を使う Ruby アプリを PostgreSQL に対応する羽目になっているのですが、今までほとんど MySQL 以外の RDBMS を触ってなかったので、色々ハマったりしたのでメモっときます。

なお PostgreSQL 歴が浅いので間違ってること書いてるかもしれません。

API

プログラムから MySQL にアクセスするには Ruby/MySQL を使っていたのですが、PostgreSQL 用の API を新たに覚えるのは面倒だったので、Sequel を使って書き直しました。

mysql.query("select col1, col2 from table where col3='xxx'")
↓
db[:table].where(col3: 'xxx').select(:col1, :col2)

…みたいな感じです。

今までプログラム中に突然 SQL が現れていて読みにくかったのが、Ruby プログラムとして読みやすくなるという効果もありました。

Sequel …

[さらに読む]
MySQL 5.6.21, 5.7.5以降では、server_idかぶりやserver_uuidかぶりでマシなエラーを吐くようになったらしい

準同期レプリケーションでStop/Startのログが大量に出力される・・・。 : しがないエンジニアのつぶやき を拝見して、そういえばこんなBugがクローズされてなかったっけ? と思い出したので試してみた。

MySQL Bugs: #72578: Duplicate slave server_uuid in replication forum gives no specific error message

シンプルにカブらせてSTART SLAVEしてみる。


Master - Slaveでserver_uuidカブり。

2014-10-22T02:15:32.090514Z 4 [Note] Slave I/O thread: connected to master 'root@127.0.0.1:64056',replication started in log 'FIRST' at position 4
2014-10-22T02:15:32.275705Z 4 [ERROR] Slave I/O: Fatal error: The slave I/O thread stops because master and slave …
[さらに読む]
bashでsplitを書いてみた

空白絡むとどうにも配列で返せなかったんで、裏変数(_split)経由で結果渡すようにしてるのがイマイチ。。。

#!/bin/bash

set -u
set -e
export LANG="C"

split() {
  sep=$1
  str=$2

  _split=()
  if [[ $str =~ $sep ]]; then
    while IFS= read -r e; do
      _split+=("$e")
    done < <(echo "${str//$sep/$'\n'}")
  fi

  # declare -p _split >&2
}

split ':' 'foo:bar:baz'
declare -p _split
echo ">${_split[0]}<"

split ':' 'f o o:b a r:baz'
declare -p _split
echo ">${_split[0]}<"

split ':' ':'
declare -p _split
echo ">${_split[0]}<"

exit

結果:

declare -a _split='([0]="foo" [1]="bar" [2]="baz")'
>foo<
declare -a _split='([0]="f o o" [1]="b a r" [2]="baz")'
>f o o<
declare -a _split='([0]="" [1]="")'
><

別解

  • …
[さらに読む]
MySQLバージョンアップのベストプラクティス

MySQLのバージョンアップ(訳注 : 原文ではupgrade、以下同じ)はどこかで必要になるタスクだし、我々Percona SupportでもMySQLバージョンアップのベストプラクティスについての色々な質問を受け付けている。この記事では、色々なシナリオにおけるMySQLバージョンアップの推奨できる方法に焦点を当ててみたい。

…

[さらに読む]
PerlのDBD::mysqlをlibmysqlclient.aとstatic linkしたい話

static linkするにあたっての動機、諸注意(ハメがあるので必読)は [twitter:@sonots] さんの

を参照してください。

ここではDBD::mysqlをビルドする際のオプションのみ記します。

http://dev.mysql.com/downloads/mysql/ からダウンロードできるrpm

  • MySQL-client-5.6.21-1.el6. …
[さらに読む]
MySQL 5.7では"[Note] mysqld: ready for connections"がどっかいった? (いってなかった

MySQLがちゃんと起動したかどうか(クラッシュリカバリーとか終わったかどうか)を見るのに、「"ready for connections"が出てれば接続はできるよ」とか昔から言ってたんですが、5.7.5で遊んでたらどうもこのログが出ない。

-- 5.6.21
2014-10-07 19:38:03 23139 [Note] /usr/mysql/5.6.21/bin/mysqld: ready for connections.
Version: '5.6.21-log' socket: '/usr/mysql/5.6.21/data/mysql.sock' port: 64056 Source distribution

-- 5.7.5
141016 19:17:37 mysqld_safe Starting mysqld daemon with databases from /usr/mysql/5.7.5/data
2014-10-16T10:17:38.421845Z 0 [Warning] The syntax '--log_warnings/-W' is deprecated and will be removed in a future release. Please use '--log_error_verbosity' instead.
2014-10-16T10:17:38.422101Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see …
[さらに読む]