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 1671 to 1680 of 3187 « Previous | Next »
レビューのためにMySQLのダウンタイムやその他のステータス変数の計画

Original post: http://anothermysqldba.blogspot.com/2014/03/planning-mysql-downtime-and-other.html

我々は、すべての中にMySQLが安定しており、再起動することなく、非常に長い時間実行できることを知っている。 時々、我々はいくつかの変数を調整したりもアップグレードのためにそれを再起動する必要があります。 いくつかは彼らのユーザが眠っているので、一晩これを実行するのに最適な時期であることを前提としてい可能性があります。 しかし、多くの場合、一晩もバックアップと異なるデータマイニング等を行うことができ、他のcrontab関連のスクリプトが含まれてい

…

[さらに読む]
プライマリキーを使った1:1関連のテーブル分割で自動採番をしないようにする

プライマリキーを使った1:1関連でカラム数の多いテーブルを分割する - Hidden in Plain Sight

プチ・デザインパターン的なやつ、僕もよくやってます。

で、運用エンジニア的にはデータの不整合を起こしうる要因はできる限りDB側の制約でも防ぎたいので、このusersとprofilesの場合だと、usersで自動採番されたidをprofilesでも使うのでprofilesの自動採番する機能は残しておくと事故るリスクがあるので落としたいわけです。

なので、僕はいつもこんな感じでmigrationを書いてます。

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t| 
      t.string :email, …
[さらに読む]
MySQLのALTER TABLEをモニタリングする

February 26, 2014 By Nilnandan Joshi

Percona Supportのエンジニアとして現在関わっている案件の中で、ALTER TABLEの進捗状況を確認する方法について顧客から尋ねられた。実は、MySQL 5.5以前は、テーブルに対するALTERの実行状況を本番環境で確認するのは少々難しく、(数百万行もあるような)巨大なテーブルではなおさらだった。これは、リビルドとテーブルのロックを伴うため、パフォーマンス低下だけでなくユーザ影響もあったためだ。とはいえ、ALTERを始めてしまえば、それがいつ終わるのかを知るのはとても重要なことだ。インデックスを作成している間、 …

[さらに読む]
Mroongaのテーブルからノイズになるトークンを(手で)取り除いてみる

データは 日々の覚書: 全文検索のテスト用にtweets.csvを食わせるSQL で書いた、わたしのツイートをテーブルに突っ込んだもので試してみました。

トークナイザーとノーマライザーはデフォルトのTokenBigram, NormalizerMySQLGeneralCIにそれぞれなっています。

$ /usr/groonga/4.0.0/bin/groonga /usr/mysql/5.6.16/data/mroonga.mrn
> table_list --output_type tsv
0 1393927353.03097 0.000258684158325195
"id" "UInt32"
"name" "ShortText"
"path" "ShortText"
"flags" "ShortText"
"domain" "ShortText"
"range" "ShortText"
"default_tokenizer" "ShortText"
"normalizer" "ShortText"
259
"tweets"
"/usr/mysql/5.6.16/data/mroonga.mrn.0000103"
"TABLE_PAT_KEY|PERSISTENT" …
[さらに読む]
information_schemaでちょこちょこ使えるTIPS

ちょこちょこ使うi_s関連のSELECTステートメント。
やる前にSET GLOBAL innodb_stats_on_metadata= 0; しておかないと重くなる。

  • xxxってカラム、どのテーブルにあるんだっけ?
mysql56> SELECT CONCAT(table_schema, '.', table_name) AS object, column_type FROM columns WHERE column_name= ? ORDER BY 1, 2;


  • データベース上のINDEXの一覧がほしい。
mysql56> SELECT CONCAT(table_schema, '.', table_name) AS object, index_name, GROUP_CONCAT(column_name ORDER BY seq_in_index) AS columns FROM statistics WHERE table_schema NOT IN ('mysql', 'information_schema', 'performance_schema') GROUP BY 1, 2;


  • フルテキストインデックスどこだっけ?
mysql56> SELECT CONCAT(table_schema, '.', table_name) AS object, index_name, GROUP_CONCAT(column_name ORDER BY …
[さらに読む]
MySQLのパラメーターチューニング at OSC 2014 Tokyo/Spring

去る2014/03/01(土)の OSC 2014 Tokyo/Spring でMyNAとしてセミナーの枠をいただいたので、おはなしししてきました。

雨の中たくさんの方に足を運んでいただきました。本当にどうもありがとうございました。


MySQLチューニング from yoku0825
…

[さらに読む]
MySQLで「任意のテーブルのDROPは許可したい」けれど、「スキーマはDROPさせたくない」

MySQL分補充エントリー。

MyNA 15987のメール でそんな話題があっていろいろ考えてネタにしようと思ってたんですが、気が付けばこれ去年の7月じゃないですか。。

やりたいこと。

mysql56> SHOW GRANTS;
+------------------------------------------------+
| Grants for user1@localhost |
+------------------------------------------------+
| GRANT USAGE ON *.* TO 'user1'@'localhost' |
| GRANT DROP ON `user1`.* TO 'user1'@'localhost' |
+------------------------------------------------+
2 rows in set (0.00 sec)

なユーザーに

mysql56> DROP TABLE user1.t1;
Query OK, 0 rows affected (0.07 sec)


…

[さらに読む]
MySQLの過去を振り返る Part 4 エンタープライズ向けのたくさんの機能

SAPはまさにエンタープライズであり、データベースのエンタープライズ向け機能の全てを使うものだった。これは、それまでのあらゆるMySQLユーザのもの(大抵はWebアプリケーションで、ますます広く使われていた)とはかなり違ったアプリケーションだった。これについては「MySQLがエンタープライズに目を向けた」と言われた。

…

[さらに読む]
MySQLの過去を振り返る Part 6 エンジンは動き出す

Netfrastructureは、データベースエンジンだけでなく色々なものを持っていたが、MySQLにとって興味深いものの一つはやはりストレージエンジンだろう。Netfrastructureの面白いところの一つとしては、組み込みのJava …

[さらに読む]
MySQLの過去を振り返る Part 5 買収の時代

この1週間、linux.conf.au 2014での発表内容を書きとめてきた。

ここで、買収の時代に突入して行こう。MySQLの歴史の中にもいくらか登場してくる。そして2005年はその2番目だ(最初はNDBを手に入れるためのMySQL …

[さらに読む]