ラベル MySQL の投稿を表示しています。 すべての投稿を表示
ラベル MySQL の投稿を表示しています。 すべての投稿を表示

2018年2月28日水曜日

MariaDB + DBeaver で、日付の扱いに不安があるという話

まず前提として、DBeaver はお気に入りです。
無料で使える質の良い SQL Client ですが、完璧はものは存在しないわけで、、

それは TIME 型 から始まった

MariaDB には TIME 型というデータ型があります。

Description

A time. The range is '-838:59:59.999999' to '838:59:59.999999'Microsecond precision can be from 0-6; if not specified 0 is used. Microseconds have been available since MariaDB 5.3.
https://mariadb.com/kb/en/library/time/
この通り、ちょっとした範囲の時間(時刻でなく) を格納できる型です。
"25:45:00" とか "-40:00:00" という、「時刻」のフォーマットとしては許可されない値まで入るという。

ある時、DBeaver がこんな表示をしていました。

ところが、SQL を close_time = "02:00:00" としても取得することができません。
書きこんではどうかと、close_time に書き込んでも、思った通りの値が入りませんでした…

もしやと思い command でデータを取得してみると、、

あらどうして、DBeaver が表示する値と異なっているではありませんか。
そう、これは「時刻として正しくない時間を表示できない」という DBeaver のバグだったのです。やれやれ。。

NULL が抽出できない

そんなことを忘れた頃に、今度は「NULL の日付が取得できない」という問題が発生しました。

DBeaver での表示はこうで、2番目のデータが取得できていませんでした。

さすがに今度はそこまで悩む前に、MySQL Workbench で確認してみました。
すると。。。

なんということでしょう。
今度は「0000-00-00」を NULL と表示してしまうバグにぶち当たったのでした。。。

この日が DBeaver に初めて Issue 登録した日になりました。
DBeaver はマイナーな DB にも All-in-one で対応しているので、細かい方言に対応しきれていないようです。

ただ、UI も機能もスピードも優秀なので、もちろんこれからも使っていきます。
お世話になってるので、PR を送るぐらいしても良いかなと思いました。
MySQL Workbench から完全卒業できる日はまだのようです。

2007年8月2日木曜日

MySQL 4.0系では、副問い合わせができない

今回は、タイトルの通り。
MySQL 4.0 系では、副問い合わせができないのである。
 
副問い合わせを使っている SQL 文が、ローカル環境の 5.x と 4.1.x では問題ないのに、4.0.21でだけ構文エラーが出ていたので、もしやと思い調べてみたら案の定だった。
 
なんというトラップ。
未だにこのいにしえ 4.0.x 系の MySQL を導入しているレンタルサーバがあるので(今回被害にあったの所もそう)、サーバーをレンタルする際には MySQL はもちろん、その他のサービスのヴァージョンには充分注意したい
まったく、こんなことで2時間ほど悩んでいた自分が情けなくなってくる。気持ち悪い
 
 
参考サイト

2007年7月20日金曜日

同一サーバ上に、複数ヴァージョンの MySQL をインストールする。

今まで MySQL は5.0を使っていたが、 OpenPNE の動作環境が4.1と4.0だったので、新たに4.1を入れることに。
同一サーバ上に、複数ヴァージョンの MySQL をインストールすることはできるのだろうか?
と不安だったが、普通にインストールするだけで問題なく動作した。
 
この場合、サービス名を「MySQL 50」、「MySQL 41」のように区別したいところだが、
既に「MySQL」等の名前でインストールされていると、MySQL の Config Wizard では変更することができない。
そういう時は、サービスのプロパティから直接編集する。
 
サービスの切り替えは、当然ポート番号で。

2007年6月1日金曜日

MySQL の外部結合で、著しく処理速度が低下する。

MySQL + php で Web サイトのアクセス集計を、もともと使っていたシステムを元に作り直していたときに出会った疑問。
 
外部結合をすると、なぜここまで急に処理が遅くなるのか。。。
 
もともと使っていたシステムよりもやけにデータを表示する時間が短いなぁ、と思っていたのだけど、
0件のデータも表示するために外部結合を加えたら、同じくらいにまで処理が遅くなった。
だけど、そこまで支障がある遅さではなかったので、処理の遅さと0件データの必要性を天秤にかけた結果、
その時は0件データをあきらめることにしたのだ。
 
結局、外部結合をすると処理速度が著しく遅くなることはわかったものの、何故、というところまではたどり着かず終いだった。
簡単にネットで調べた感じだと、特に「外部結合=遅い」というような情報はなかったんだけどなぁ。
ただそれだけに、どのような条件で外部結合の処理速度が著しく低下するのかは非常に気になるところ。
頭の片隅に置いておいて、機会があったら追って調べてみようと思う。