タグ

mysqlに関するKGAのブックマーク (22)

  • MySQL 5.7のmysqld --initializeと鶏卵問題 - (ひ)メモ

    MySQLのデータディレクトリの初期化にはこれまで mysql_install_db が使われてきましたが、MySQL 5.7からは mysqld --initialize を使うことが推奨されています。 mysqld --initialize は datadir 配下にファイルやサブディレクトリがあるとエラー終了します。 # mysqld --initialize --user=mysql 2016-10-04T11:39:01.313174Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting. 2016-10-04T11:39:01.313222Z 0 [ERROR] Abortingなので datadir をスッカラカンにして再度実行してみます。my.cnf はこんな内容

    MySQL 5.7のmysqld --initializeと鶏卵問題 - (ひ)メモ
    KGA
    KGA 2016/10/08
  • MySQL TIMESTAMP型の NOT NULL制約に期待してはいけない | 開発メモるアル

    MySQL 5.1.67環境です。 タイトルの通りなのですが、MySQLマニュアルのTIMESTAMPの説明を読んでみると、 NOT NULL制約に関して気になる記述がありました。 MySQLマニュアルのTIMESTAMPの説明 MySQL 5.1 リファレンスマニュアル (オンラインヘルプ) :: 6.3.1.1 TIMESTAMP の特性によると、 TIMESTAMP カラムはデフォルトで NOT NULL になっているため、NULL 値を含めることはできません。NULL を指定すると、現在のタイプスタンプが割り当てられます。 だそうです。 さらっと書いてるけど、NOT NULL制約がエラーチェックに使えないってことじゃないか。 実際、 MySQLのTIMESTAMPカラムをNOT NULLで定義しても、NULLのINSERT/UPDATEを実行すると現在時刻になってしまいます。 これ

    KGA
    KGA 2015/07/12
  • いぞるで雑記annex mysqlのtimestamp型を使って更新日時と生成日時の両方を記録する

    mysqlのtimestamp型は他の主なRDBMSと違って勝手に値を格納するらしい。 あと、DEFAULT値にnow()のような関数を使うことも出来ないっぽい。 その代わりにといってはアレだけどON UPDATE CURRENT_TIMESTAMPのような属性が使えるので、更新日時のような値を保持するにはもってこいの型みたい。 で、今回やりたかったのはひとつのテーブルに modified_date と create_date のような2つのtimestamp型のカラムを作って、更新日時とデータを最初に作った日の両方を管理する方法。 スキーマはこんな感じで定義しておく CREATE TABLE `test` ( id int(4) unsigned NOT NULL auto_increment, name varchar(10) , . . 略 . . modified_date tim

    KGA
    KGA 2015/07/12
  • MySQL5.6で増えたexplicit_defaults_for_timestamp - hiroi10のブログ

    あまりぐぐっても出てこなかったので簡単に書いてみる。 MySQL5.5のmy.cnfをそのまま流用してMySQL5.6を起動すると以下のようなメッセージがエラーログファイルに出力される。長いので改行していますが実際は一行。 121104 22:29:57 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).こちらはMySQL 5.6.6から追加されたexplicit_defaults_for_timestampによるもの。 booleanでデフォルトはFALSE(0)。動的変更は不可となります。公式Doc とりあえずFALSEの

    MySQL5.6で増えたexplicit_defaults_for_timestamp - hiroi10のブログ
    KGA
    KGA 2015/07/10
  • YappoLogs: なぜ SQL_CALC_FOUND_ROWS や LIMIT OFFSET のページングが良く無いのか

    なぜ SQL_CALC_FOUND_ROWS や LIMIT OFFSET のページングが良く無いのか ここ最近の大規模サービス関連したデータページング考です。 mysql 5.5.34 で試して記事書いてます。 bigdata テーブルは id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (id) なカラムがある前提です。もちろん InnoDB です。 2014年なんだからCOUNT(*)とかSQL_CALC_FOUND_ROWSとかLIMIT OFFSETのページングはやめようぜ - Togetterまとめが発端にみえるけど、わりと昔から話されてる事なんだけど、「nippondanji SQL_CALC_FOUND_ROWS」でググっても有用な情報ないし文書化されてないからしとく。 ページング処理で使われがちな機能です。 S

    KGA
    KGA 2014/03/13
  • MySQLがおかしい!あなたならどうしますか? – MySQL Casual Advent Calendar 2011 - As a Futurist...

    しわっす!DBA 兼オペレーションエンジニア兼タスクマネージャやってる riywo です。何のネタを書こうかなぁと考えたのですが、正直ネタを仕込む時間もなかったので僕がいつもやってることをさらっと紹介するということで勘弁して下さい>< MySQL がおかしい! 03:14 hidek: なんかエラー出まくってるんだけど! 03:14 zigorou: MySQL と通信してるとこっぽい 03:15 riywo: 見ます こんなやりとりは皆さん日常茶飯事ですよね?ね?ね?こんな時に、DB に責任を持つものとして真っ先に対応するのが僕らの仕事です。でも、じゃあ具体的にこのあと何をしましょう?既にサービスはエラーだらけで一刻を争う状態です。 (対応開始) まずはエラーメッセージ 今回の様な場合はアプリのエラーログにどばっと MySQL に関するエラーが出ているでしょう。まずはそれを見ることが始ま

    MySQLがおかしい!あなたならどうしますか? – MySQL Casual Advent Calendar 2011 - As a Futurist...
    KGA
    KGA 2011/12/02
    こういうのもっと読みたい!
  • Covering Index と self-join と MySQL - blog.nomadscafe.jp

    某サービスのクエリチューニングのお話。 ブログとか日記とかそういうサービス系で次のようなテーブルがあったとします。 CREATE TABLE entries ( id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, user_id INT UNSIGNED NOT NULL, posted_by TINYINT UNSIGNED NOT NULL, --#PC、mobileなどどこから投稿されたかのフラグ title VARCHAR(512) NOT NULL, body TEXT NOT NULL, created_at DATETIME NOT NULL, updated_at TIMESTAMP NOT NULL, status TINYINT UNSIGNED NOT NULL, INDEX (user_id,created_at

    KGA
    KGA 2011/08/17
  • 実行中のクエリを確認 - netmark.jp

  • MySQLのインデックスを学ぶ (1) - 刺身☆ブーメランのはてなダイアリー

    実践ハイパフォーマンスMySQL 第2版とLinux-DBシステム構築運用入門を読んで、 MySQL のインデックスについて勉強しなおしている。理解が曖昧だった部分の知識を深められたり、自分の間違いに気づけたりして、とても収穫が多い。 フルテーブルスキャンとフルインデックススキャン Linux-DBシステム構築運用入門 P185 に書いてあるケース。インデックスを利用してても対象レコード数が多いとランダムI/Oが大量に発生して遅くなる。読むべきレコード数が多いのならばフルテーブルスキャンのほうがI/O一回で多くのブロックを読み込めるので速い。 IGNORE INDEX ヒントを与えてパフォーマンスを改善するという例があった。 マルチカラムインデックスと範囲検索 SELECT * FROM users WHERE a = ? AND b >= ? and (c IS NULL OR c >=

    MySQLのインデックスを学ぶ (1) - 刺身☆ブーメランのはてなダイアリー
    KGA
    KGA 2010/09/26
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    KGA
    KGA 2010/04/27
  • xtrabackup を使ってみた - tokuhirom's blog

    xtrabackup とか前からつかってみたかったのでつかってみた。データセットが 500 MB ぐらいなので、サクサクいける。500MB のうちほとんどはクローラちゃんがとってきたデータ。500MBぐらいのデータとるとこんなかんじ。 xtrabackup --backup 4.31s user 2.44s system 20% cpu 33.174 totalバイナリをここからとってきてみる。俺は ubuntu つかってるので dpkg -i でさっくりいれる。 http://www.percona.com/mysql/xtrabackup/ あとはこんなかんじで。 0 4 * * * cd /var/lib/mysql/ && rm -rf /var/lib/mysql/xtrabackup_backupfiles && xtrabackup --backup && scp -r ./

    KGA
    KGA 2010/02/02
  • mysql と drizzle の負荷テストツール「skyload」が凄い! - kazuhoのメモ置き場

    tmaesakaさんがやってくれました。 ずいぶん前からSQLのベンチマークを測定するのに使いやすいプログラムないかなーと思ってました。個人的にはmysqlslapというのを使ってたのですが、幾らか気に入らない所があったりコマンドラインオプションが複雑で毎回 --help を読んだりしていました。余計な機能なんかなくて、指定したSQLを高速にくりかえしてくれる物が欲しいなぁって思ってたんです。 とあるIRCでこの前、tmaesakaさんから「いま作ってる」という話を聞いて、いろいろ要望を言ってたんですが、ついさっきチュートリアルが公開されました。速いw 名前はskyload。とても小さく、実装コードだと800行程度です。しかもオプションが少ないので使い方が単純です。試しに適当な INSERT の速度を測ってみました。 $ skyload --server=localhost --mysql

    mysql と drizzle の負荷テストツール「skyload」が凄い! - kazuhoのメモ置き場
    KGA
    KGA 2009/07/07
  • LeopardにMySQLをインストール » Wing World

    昨日の続き。MySQLの安定最新版5.0.67をMacPortsを使ってインストールします。MacPortsに慣れる意味合いも含め、MySQL用にライブラリOpenSSLをインストールしてみます。OpenSSLと依存関係のzlibは自動的にインストールされます。Porticusでもインストール可能です。 $ sudo port install openssl MySQLをインストールします。Macを起動したときに、自動でMySQLサーバも起動するように、「+server」を付加します。インストールにはしばらく時間がかかります。Porticusでもインストール可能です。 $ sudo port install mysql5 +server インストールが完了したら、DBを初期化します。 $ sudo mysql_install_db5 DBのパーミッションを設定します。 $ sudo cho

    KGA
    KGA 2009/06/21
  • Kazuho@Cybozu Labs: MySQL の高速化プチBK

    « システムコールの最適化 | メイン | キャッシュシステムの Thundering Herd 問題 » 2007年09月20日 MySQL の高速化プチBK 鴨志田さんに教えていただいたのですが、MySQL のクエリは数値をクォートしない方が高速になるらしいです。たとえば以下の例では、160万件の整数から4の倍数を数えていますが、数値をクォートしないほうが約50%も高速になっています。 mysql> show create table numbers; +---------+----------------------------------------------------------------------------------------+ | Table | Create Table | +---------+--------------------------------

    KGA
    KGA 2009/06/09
  • MySQL (Mac) の README に書かれていること - 理系学生日記

    MySQLMac 用バイナリをインストールしたのですが、README に書いてあることを忘れそうだったので、ここにメモしておきます。 全文訳しているわけではなく、必要かもしれないと思ったところだけなので。 インストール場所 インストールされるのは、/usr/local/mysql-VERSION で、/usr/local/mysql からシンボリックリンクが張られる。もし /usr/local/mysql が既に存在している場合は、そのファイルは /usr/local/mysql.bak にリネームされる。 MySQL のバイナリは全て /usr/local/mysql/bin 以下に配置される。また、ソケットファイルは /tmp/mysql.sock がデフォルトである。 ユーザ MySQL は 'mysql' というユーザアカウントを必要とする。 スタートアップ システムの起動時

    MySQL (Mac) の README に書かれていること - 理系学生日記
    KGA
    KGA 2009/05/17
  • さらにMySQLを高速化する7つの方法

    MySQLを高速化する10の方法という記事がとても好評だったようである。記事を読んで頂いた皆さん、ありがとう。 この記事に対する便乗(?)でWeb屋のネタ帳: PostgreSQLを高速化する16のポイントという記事を書いて頂いたようだが、そちらの方もかなり人気だったようである。他人が作ったソフトウェアに改良を加えるというフリーソフトウェアやオープンソースソフトウェアの精神も基は便乗であるので、便乗については大いに賛成したいというかむしろ取り上げてくれてありがとう!!と思うわけであるが、ここでさらに俺はこう考える。 と。 Web屋のネタ帳さんの記事では16のポイントが紹介されているが、漢(オトコ)のコンピュータ道の記事は10の方法だったのであと6つ足りない。オトコは数で勝負!!というわけで今日はネタを振り絞ってさらに7つのMySQL高速化テクニックを紹介しよう。 1. インテルコンパイラ

    さらにMySQLを高速化する7つの方法
    KGA
    KGA 2009/03/05
  • MacPortsでMySQL入れた場合のmysql gemのインストール - ちなみに

    $ sudo gem install mysqlでは駄目で、 $ sudo gem install mysql -- --with-mysql-configでも駄目で、 Mac OS Xにgemmysqlをインストール - mat_akiの日記を参考(というかコピペ)にして、 $ sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/opt/local/bin/mysql_config5で一発でOKだった。 Building native extensions. This could take a while... Successfully installed mysql-2.7 1 gem installedとても感謝。

    MacPortsでMySQL入れた場合のmysql gemのインストール - ちなみに
  • blog.katsuma.tv

    経緯は自分でもまったく分からないのですが、気づいたらMySQLのrootアカウントを削除してしまいました。普段は開発中のDBに対してselect, update, insert, deleteのみを許した限定的な権限のユーザでゴニョゴニョしていたので、いざ新規テーブルを作成しようかと思ったらrootでつなげない→途方に暮れる、ということになったわけです。 よくある事例としては「rootのパスワードを忘れました」ということはあるかと思うのですが、「rootアカウント自体を削除してしまいました」という事例はなかなか聞きません。と、いうわけで地味に対応が困ったのですが、何とか復旧できたのでそのメモを記しておきます。OSはFedora5です。 まず、起動しているmysqldを停止させます。Fedoraだと(*) /etc/init.d/mysqld stop で、停止します。 (*) 起動パスなど

    KGA
    KGA 2008/10/06
  • MySQL 文字化け問題を本気で直す

    mysql> status; -------------- mysql Ver 14.7 Distrib 4.1.20, for redhat-linux-gnu (i386) using readline 4.3 Connection id: 36 Current database: staff2006 Current user: maiha@localhost SSL: Not in use Current pager: lv Using outfile: '' Using delimiter: ; Server version: 4.1.20 Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: latin1 Db characterset: latin1 Client char

    KGA
    KGA 2008/10/06
    UTF8
  • MySQLクイック・リファレンス

    この文書は、osCommerceで使用しているデータベースMySQLの基的な使い方について解説しています。おもにデータベースの管理者よりも、ユーザに向けて書かれています。 はじめに ここでは、MySQLサーバは起動しているものとして説明します。 MySQLの文字について MySQLでは、データベース名やテーブル名の大文字と小文字を区別しています。それ以外は区別しません。 MySQLのフィールド名やテーブル名に使える文字は、英数字と_(アンダーバー)、$、サーバのキャラクタセットにある文字です。 知っておきたいコマンド mysqladmin(データベースの作成・削除や、MySQLサーバの情報を得る) mysqlshow(データベース、テーブルの情報を表示する) mysqlMySQLクライアントの起動) mysqldump(データベース、テーブルをダンプする) myisamchk(テーブル

    KGA
    KGA 2008/10/06