SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

Category / MySQL

double, floatとdecimalの違い

2019-07-16 問題 float, double と decimal の違いが判りません。 どちらも小数で同じなのでは? 答え double、float は10進数の小数を2進数の小数で表現した近似値。お金の計算などには使えない。 10 […]

【MySQL】WHERE句にORを大量につなげると遅くなることがある

2019-04-30 問題 複合キーのテーブルで、以下のようなSQLがものすごい時間をかけているのを見かけました。 UPDATE xxxx SET xxx_flag = 1 WHERE (order_no = '20180921-001237 […]

【MySQL】The table ‘xxxx’ is full のエラー

2019-04-04 問題 MySQLで、普通のINSERT文の実行なのですが、以下のエラーが出ました。 Error 'The table 'xxxx' is full' on query. Default database: 'xxx'. […]

【MySQL】utf8なデータベースで4byte文字を格納する方法

2018-09-24 問題 MySQLのutf8なデータベースでは、吉野家の吉(実際は上が長い)とか、スマホの絵文字とか格納できないですよね? utf8mb4にしないとダメですよね? 答え 格納だけ考えるなら、blob型にするのもよいでしょう […]

MySQLサーバーを新規に別ポートで起動する

2018-03-30 問題 普段使っているMySQLは3306番ポートをlistenしていますが、 一時的に新規でまっさらのMySQLを立ち上げたいです。 答え ダンプをとってからまっさらにする、datadirを別にして起動しなおすという手も […]

【MySQL】Incorrect file format のエラー対応

2018-02-28 問題 以下のエラーで、MyISAMエンジンのテーブルを参照できません。 error: 130: Incorrect file format ‘some_table’ 答え まずはrepairを試す。 mysqlcheck […]

MySQLのダンプからのリストア所要時間の予想

2018-02-27 問題 今、10GBぐらいあるダンプファイルをMySQLのデータベースにリストアしているんだけど、 いったいいつ頃終わるんでしょうね? 答え1 私がよく触るある環境では1GBあたり2分ぐらいかかります。 そんな感じで、いつ […]

【MySQL】SQLがなぜか遅いときの原因のひとつ

2017-04-02 問題 あるSELECT文の実行が異様に遅いです。 インデックスは作成してあるので効くはずなのに、インデックスが使用されている様子もないです。 なぜ? 答え SQL自体には問題はないはずなのに、なぜかインデックスが効かない […]

【MySQL】小数

2017-03-22 問題 MySQLで小数の計算すると端数が変になります? 答え ▼ テーブル カラム名 型 id int test_double double test_float float test_decimal decimal(1 […]

MySQLのバイナリログを自動的に圧縮して退避する

2017-03-20 問題 MySQLのバイナリログがそこそこの容量になるので、圧縮して退避したい。 ただ、ログ調査などのために一定期間は消さずに残したい。 できますか。 答え バイナリログは、/var/lib/mysql などのMySQLの […]

【MySQL】空き容量に余裕のないサーバーでダンプ・リストアするとき

2016-11-15 問題 空き容量に余裕がない状況で、MySQLのダンプ・リストアをするには? 答え ダンプをとるときは、そのままファイルに書き出さないで、gzipで圧縮して保存する。 mysqldump -u 【ユーザー名】-p【パスワー […]

【MySQL】 Row size too large のエラーの対応

2016-11-09 問題 MySQLのデータベースに たくさんのTEXT型カラムを持ったテーブルを作り、 いざデータを登録しようとしたところ、エラーが出ました。 Row size too large 答え 設定で innodb_file_f […]

【MySQL】昇順にソートしたいけどNULL行は後ろにもってきたい

2016-01-17 問題 SQLで、結果をソートするときに、NULLの行は後ろにもっていくとか、できますか? 答え 一応できる。 select * from T order by ソートしたい列 is null, ソートしたい列; ソートし […]

【MySQL】月初、月末の計算方法

2015-12-19 問題 MySQLでの日付計算で、月初や月末を出すのはどうやったらよいですか。 答え CURDATE() は、日付型カラムなどに置き換えてお使いください。 -- 当月月初 SELECT DATE_FORMAT(CURDAT […]

【MySQL】手軽な高速化手段

2015-11-21 問題 忙しそうなMySQLを高速化したい。 答え もし現在の設定が以下のようであれば mysql< show variables like 'innodb_flush_log_at_trx_commit'; +-- […]

【MySQL】insert ~ select ~ でロックのかかる例

2015-11-16 問題 あるテーブルのデータを delete しようとしているのですが、ロック待ちのタイムアウトになります。 ERROR 1205 (HY000): Lock wait timeout exceeded; try rest […]

【MySQL】SQLで年度末時点の年齢を計算する

2015-11-12 問題 とあるシステムで年度末時点(3月末時点)の年齢を出さないといけなくなったのですが、SQLでできますか。 答え TIMESTAMPDIFF が、ExcelでいうDATEDIFの満年数計算と同じことをしてくれる。 me […]

【MySQL】SQLで年度末を計算する

2015-11-11 問題 SQLで、年度末ってどうやって計算すればよいですか?(4月区切りの) 4月以前だったら~、4月以降だったら~みたいな条件分岐が必要? 答え 4月以前、以降で場合分けをするのは、素直なアイデアで間違ってはいない。 書 […]

【MySQL】 UTF-8の半角スペース(C2A0)を含むデータを抽出する

2015-11-05 問題 SQLで、あるカラムにタブや変な文字が入っていないか確認したい。 答え MySQLでは、0xHHHH….形式で文字列を16進表現できるので、以下のようなSQLで書ける。 ・タブを含む SELECT * […]

【MySQL】 INSERT後すぐに別プロセスでSELECTするとデータが取得できない?

2015-09-29 問題 MYSQL 5.1.49 、MyISAM なテーブルで、プロセスAがINSERT実行後、プロセスBがAが登録したレコードをすぐにSELECTしようとすると、取得できない現象が発生するのですが、そういうものですか。 […]