がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

MySQL

(VARBINARYの代わりとしての)COLLATE utf8mb4_bin

いやまぁそのまんまなのですが。ちょいと故ありましてLaravel触ってるんですが、あの子、デフォでVARBINARY扱う手段ないんですよねぇ……。 DB::statement('ALTER TABLE (以下略とかで「可能」なのは理解しているんですが、それも「ど~なのよ?」的な。で。 …

MySQLでUNIQUEに引っかかった時のAUTO INCREMENTの挙動

ちとうちの子から MySQLでユニークキーとPKあるテーブルに対してON DUPLICATE KEY UPDATE張って、uniqueでの重複させるとauto increment値飛んじゃうんだね。。。 という興味深い話を聞いたので、早速実験。 CREATE TABLE test ( id SERIAL, name VARCHAR(25…

0000-00-00 と PHP

MySQLの、(少なくとも一部では)悪名高き 0000-00-00 について、は、そこそこブログがあるのですが。 「それを、PHP(plain)とか(PHPの)フレームワークとかでどうやってるんだろ?」というのが、ざっくりググった限りだと案外と無かったので。 調査かてがて、…

database領域の作成とユーザの作成

最近少し、作り方が変わったのか変えたのか。 こんなやり方をしてることが多いです、ってのがあったので備忘録。 create database データベース名; CREATE USER 'ユーザ名'@'サーバ名' IDENTIFIED BY 'パスワード'; GRANT ALL ON データベース名.* TO 'univc…

多言語対応のあれこれ

ふと生徒さんに質問をいただいたのもあって。 ちょうどよいきっかけになったので、せっかくなんでBlogで。 本質的には「どの言語のどの領域」でもある程度応用が利くかと思われますが。 一応、おいちゃんの記述なんで「MySQLでPHPつかったWebアプリケーショ…

大きなIDをどうやってPHPからMySQLに渡す?:詳細:PHPからcall編

とりあえず、ざっくりと接続してデータをfetchAllでゲトって、「ゲトれる事」をほんのりと確認してみましょう。 基本になるコードは以下の通り。 移行、SQL以降部分だけ適宜すりかえながらやっていきます。 false, ); // 「複文禁止」が可能なら付け足して…

大きなIDをどうやってPHPからMySQLに渡す?:詳細:MySQL編

とりあえず「思考の流れと調査の流れ」をそのまま書くので、読みにくいのはごめんなさいまし。 まずはいくつか検証テーブルを用意…する前に、MySQL自体の動きの確認を。 直近、参考にさせていただいたのは、hnwさんのこちらのサイト。 http://d.hatena.ne.jp…

大きなIDをどうやってPHPからMySQLに渡す?:発端とまとめ

あるタイミングで、プリペアドステートメント回りのお話と、IDのカラム(によって決まる最大値)のお話と、intサイズのお話が別々に来た時に……頭ん中で混ざって、「あれ?」と思った事があったので調べてみた、って感じになります。 まず話に出ていたのが「AUT…

異字体?

大本ネタはこちら。 http://moriyoshi.hatenablog.com/entry/2017/03/13/011005 ここで「異体字セレクタ」ってのをはじめて知って、ちょろっと調べものをしたので、備忘録的に。 UnicodeっつかUTF-8で「1文字づつ」に分割するごにょごにょを書きたいかもな…

MySQLのmemcachedインターフェース(InnoDB Integration with memcached)を実験してみた:備忘録

きちんと把握したい人以外は特に読まなくてもイイ内容w ただまぁ「きちんとした把握もせずに使う人」が技術者なのか? という問いが、おいちゃん的にはあったりするんだけど、まぁ人それぞれなので。 containersテーブルについて少し 基本的は、前述の通り…

MySQLのmemcachedインターフェース(InnoDB Integration with memcached)を実験してみた:チューニング周りの備忘録

あんまりちゃんと調査してないんで、本気で備忘録程度。 とりあえず、memslapで簡単にベンチマーク確認しておきませう。 # 10,000回のテスト memslap --servers=localhost --test set memslap --servers=localhost --test get 以下のパラメタがチューニング…

MySQLのmemcachedインターフェース(InnoDB Integration with memcached)を実験してみた:準備変

とりあえず、以下を先にやっておきましょう。・必要なconfigの設定(SQL文が流れる) cat ./plugin/innodb_memcached/innodb_memcache/scripts/innodb_memcached_config.sql | mysql -u root ・プラグインの設定(SQL コンソールにて) install plugin daemon_me…

MySQLのmemcachedインターフェース(InnoDB Integration with memcached)を実験してみた:概要

ほぼ完全に備忘録な上に「やった手順に沿って」の内容なんで、激しく長いです(苦笑 先に結論だけ書いておくと ・格納先テーブルは任意に選べる ・keyについては… *charとvarcharあたりが相性がいいんだけど、intもいける *varbinaryが相性悪くて、故に「'A…

あぁ2038年問題か

MySQLにデータを入れようとしたら Incorrect datetime value で怒られた。 …なんでだろ? って思ったら、timestamp型で、'2054-1-1 22:33:44'って値を入れようとしてた。 timestampって「TIMESTAMP データ型の範囲は、'1970-01-01 00:00:01' UTC から '2038-…

PDO関連備忘録

ちと確認したいことがあったので。 もっそメモ書きなので、適宜脳内保管しつつ読んでくださりませ。 とりあえず set global long_query_time = 0; set global slow_query_log = 'on';して、MySQL側に渡っているものを覗いてみようかなぁとか画策。 create ta…

MySQL5.5系インストールメモ

そういえば。cmake使うようになって、わずかながらに面倒だったので、メモ。 installしたのは…2月の頭ごろだったので。バージョンは適宜読み替えてちょ。 wget http://www.cmake.org/files/v2.8/cmake-2.8.7.tar.gz tar zvxf cmake-2.8.7.tar.gz cd cmake-2…

レプリケーション覚書

MySQLのレプリケーション周り。 今度まとめるとして、参考になった数々のURIを列挙。 http://wiki.bit-hive.com/tomizoo/pg/MySQL%20%A5%EC%A5%D7%A5%EA%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3%A4%CE%C0%DF%C4%EA http://www.irori.org/doc/mysql-rep.html http://n…

ボトルネック見つけ用メモ

なんか色々と資料散らかってるわ忘れてるわで、散々と面倒だったので。 後で付け足す前提で、手元にある「散らかった資料」を整理してまとめておきます的なmemo。 …あぁ先に。set globalとかは「すげぇ激しいパーミッション」が要求されるのでご注意のほどを…

MySQLのパーティションでセッションテーブル管理:失敗編

とりあえずアバウトにmemo。 やりたいこと。 drop table session_test; create table session_test ( session_id varbinary(256) not null, use_id varbinary(64) not null, data blob, insert_date datetime, update_date datetime, PRIMARY KEY (session_i…

でっかいテーブルをまりっと更新する方法のひとつ の応用編と困ったこと

んで。 これの亜種として「部分的に入れ替える」事を、やることがあります。 んと…住所だと「東京都だけ入れ替える」とか。 trancate 郵便番号テーブル_tmp; loop insert into 郵便番号テーブル_tmp(...) values(...); begin; delete from 郵便番号テーブル …

でっかいテーブルをまりっと更新する方法のひとつ

んと…例えば「郵便番号をkeyにした住所テーブル」なんてのが、割とわかりやすいところであるのですが。 この子を更新する場合、普通に考えると begin; trancate 郵便番号テーブル; loop insert into 郵便番号テーブル(...) values(...); commit; ってな処理…

INSERT ... ON DUPLICATE KEY UPDATE 構文 と REPLACE 構文

REPLACEは「なきゃinsert、あったらdelete&insert」なので、平たく「上書き」。SNSの足跡なんかにめっさ便利。 ON DUPLICATE KEYは「なきゃinsert、あったらupdate」なので、カウンタ系とかの実装にめっさ便利。 …恐ろしいくらいに綺麗に記憶から抜けていた…

文字コード関連

とりあえずアバウトにmemo。 あとで整理…予定(苦笑 確認関連 show variables like 'character_set%'; show variables like "char%"; status show create database データベース名 \G show create table テーブル名 \G 設定関連 [client] default-character-s…

新しいサービス構築用memo

create database でぇたべぇす名; grant ALTER, CREATE, DELETE, DROP, INDEX, INSERT, LOCK TABLES, SELECT, UPDATE on でぇたべぇす名.* to ユーザ名@ホスト名 identified by 'ぱすわぁど'; flush privileges ;ちなみに「ぱすわぁど作成」にはこちらが便利…

AUTO_INCREMENTで突っ込まれた値の取得方法

int mysql_insert_id ([ resource $link_identifier ] ) または SELECT LAST_INSERT_ID(); のいずれかで取得。 DBハンドル毎にユニークに値をもっているらしいので無問題…の、はず。未検証だけど。

小ネタ:接続編

最大接続数を知りたい時 echo "show variables" | mysql | grep max_connectionsで、設定数を増やしたい時のmy.cnfへの記述 [mysqld] set-variable = max_connections=500で。max_connectionsと=と500の間はスペース入れるとエラるので注意。

「おまえが悪い」ネタ第二弾 orz

んと。ちと色々ありまして 現行本番のDBを色々したいってかとりあえず「ちと細工などしつつ」吸い上げたい 本番DBくん、ぶっちゃけ「uptimeとかすごい事になってる orz」 幸い、いくつか別マシンがある って状況がお膳立てとしてありまして。 まぁ 一瞬だけM…

えと…いやまぁおいらが悪いんだけどさ orz

んと。 ちととある業務で色々ありまして「intで指定したカラムに小数点な数値がはいる」事故が発生しまして。 いやまぁ二次データなんで結構気ぃ抜いてたんですが orz おいといて。 えと…ちょっと興味深いデータが見つかりまして実験をしてみたりしました。 …

DNSの逆引きでエラー

via http://www.res-system.com/weblog/item/582んと。キーワードとしては「MySQLで時々妙に重くなる」とか「プロセス数がmaxいっちゃってconnect出来ない」とかそんな事象。 mysqlコンソールでログインしてshow processlistコマンドとかで見ると、unauthent…

え?

http://itpro.nikkeibp.co.jp/article/NEWS/20080117/291269/ SunがMySQLを10億ドルで買収,「イルカの飛翔を手助け」米Sun Microsystemsは1月16日(米国時間),オープンソース・データベースの大手であるスウェーデンMySQLを10億ドルで買収すると発表した…