41から始めました

文字通り41歳から始めたブログです。DB(MySQL)を使ってお仕事してるので、DB周りの話を中心に最近始めたこととかをTwitterのノリで書いています。なお、本サイトにおいて示されている見解は私個人の見解であり、所属団体や組織を代表するものではありません。

クエリの性能検証にmysqlslapはどうですか?

GIS関数について続きを書こうと思ってたけど、mysqlslapを使ったのでその使い方について軽くメモしとく。 mysqlslapとは mysqlslap は MySQL サーバーのクライアント負荷をエミュレートし、各段階のタイミングをレポートする診断プログラムです。 複数のクラ…

Club MySQL #4 ~周辺知識から理解するMySQL のGIS機能 聞いてきた と Workbenchで触ってみた

昨日これに行ってきました clubmysql.connpass.com 坂井さんによるGIS関数の話を聞けるということで、業務的にも地理データ少し使うんで、これが使えるともしかしたら面白いことできるかも?と思って行ってきました。 資料の内容についてはそちらを見てもら…

MySQLの全文検索インデックスでハマったこと(主にストップワードテーブル)

以下ハマったことを羅列 innodb_ft_enable_stopwordパラメータが、公式にはグローバルのみと書いてあるのに、グローバルをOFFにしてもパラメータがOFFにならない。 alter table spec_bukken_view Engine = InnoDB;を使えばインデックスの張り直しは不要だが…

perrorコマンドって知ってる?

昨日とあるイベントに参加して知ったコマンドperrorについて perrorとは? 公式(perror - エラーコードの説明)を参照 要するに、MySQLがエラーコードやエラー番号を出力するんだけど、そのエラーの意味がこのツールで分かりますというもの。 使い方 MySQL(ク…

【MySQL】良く使う調査コマンド・クエリ

順次追加していく予定 SHOWコマンド プロセス一覧 show processlist; MySQLパラメータ確認 SHOW VARIABLES [like 'パラメータ名']; パラメータ名に hostname と入れればホスト名が取得できるし、 buffer と入れるとメモリ関連、 dir と入れればディレクトリ…

【MySQL】ERROR 2013 (HY000)の解消

これ、なんのエラー? ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 そもそもDBが立ち上がってないのなら全員これが出るだろうが、一部の接続だけがつながらないのであれば アクセス許…

FULLTEXT INDEXは一個ずつ作ろう(by MySQL5.7)

バージョン MySQL5.7.22 カラム追加の場合 ALTER TABLE table_A ADD COLUMN ft_column1 varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'フルテキストカラム1', ADD COLUMN ft_column2 varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NUL…

MySQL8.0でLOAD DATAする時の注意

必要なもの - FILE権限 - client に local-infile=1が必要 - mysqldにもlocal-infile=1が必要 三つ目のmysqldにもlocal-infile=1が必要がMySQL8.0での落とし穴 実は、MySQL5.7ではこいつがデフォルトONなのだが、8.0.2移行ではOFFになる。 デフォルトなもん…

【MySQL】インデックス作成時のカラム長制限について

Specified key was too long; max key length is 767 bytes インデックスを作る際に、型長×文字コードのサイズ >767 なカラムに作ろうとすると出る。 例えばこんな感じ CREATE TABLE `test` ( `COMMENT` varchar(192) NOT NULL DEFAULT '', KEY i_test_1 (`C…

MySQL8.0ではGRANT文でユーザを作らせない(代わりにロールがある)

MySQL5.7まではいけたGrant文でのCreate User MySQL5.5 Server version: 5.5.52 MySQL Community Server (GPL) ~ mysql> GRANT ALL ON nanigashi.* TO 'super_nanigashi'@'%' IDENTIFIED BY "super_nanigashi"; Query OK, 0 rows affected (0.01 sec) MySQL5…

char vs varchar

どっちがおススメなんだろう? 社内のテーブルで管理しているID値は36桁の固定長で構成される文字列にしているんだが、そのカラムの型がvarcharで、 charにした場合、領域小さくなったり、INDEX使用時の検索が早くなったりしないだろうか?と思い調査 現行の…

【MySQL】キャッシュウォームクエリ(InnoDB)の自動作成

そもそもキャッシュウォームとは? MySQLデータベースにはInnodb Buffer Pool(通称バッファプール) と呼ばれるメモリ上に確保された領域があります。 その領域にデータやインデックスがキャッシュされます。(対象はInnoDBテーブル) キャッシュはデータの初回…

インストールしたinnotopで接続時にエラー

最新のinnotopをインストール 環境はUbuntu16.04 $ sudo apt-get install mysql-client $ dpkg -S /usr/bin/innotop 非常に簡単。さあ、使おうと思ったら・・・。 $ innotop -u root -p -h host名 -P ポート番号 PROCESSLIST: Redundant argument in sprintf…