2329 件中 11 - 20 件を表示
« 前の 10 件 | 次の 10 件 »
JGD2011からのST_Transform()、JGD2011へのST_Transform()

この日記は RDBMS-GIS Advent Calendar20日目の枠です。


 一昨日に書いた MySQL 8.0.13 の ST_Transform()を試す - sakaikの日々雑感~(T)編 に対する返歌を 有意識者の boiledorange73 さんにいただいた(JGD2011の座標系にtowgs84が無いとかそもそもtowgs84って何やねん - Qiita)ので、それに対する恋文返しです。実際には、boiledorange73 さんへのお返事になっているというよりも、boiledorange73 …

[さらに読む]
Firebirdの分析関数の衝撃(13) 関係除算を表現する

Firebirdの分析関数の衝撃(13) 関係除算を表現する

本エントリはFirebird Advent Calendar 2018 の19日目です。

2. 関係除算を表現する

ミックさんの以下のエントリにあるように関係除算の標準的な定義はありません。

注意4:除算の標準的な定義がない

そのため、プログラマのためのSQL 第4版にあるようにさまざまな方法が考えられます。
「27.2 関係除算」参照のこと。ここでも書かれているように関係除算には二種類あります。

[さらに読む]
Firebirdの分析関数の衝撃(12) 2つのテーブルが相等であるかどうか

Firebirdの分析関数の衝撃(12) 2つのテーブルが相等であるかどうか

本エントリはFirebird Advent Calendar 2018 18日目のエントリです。

1. 2つのテーブルが相等なら「等しい」、そうでなければ「異なる」を返すクエリ

INTERSECTとEXCEPTがないFirebird(とMySQL)にとっては、この書き換えは迷宮のようなわけのわからなさになることうけあいです。そのため、以下のように一番短い(そのように見える)以下のクエリを題材にしましょう。

-- window関数で書き換えたSQL
select case when count(*) = 0
then '等しい'
else '異なる' end as result …

[さらに読む]
MySQL 8.0.13 の ST_Transform()を試す

この日記は RDBMS-GIS Advent Calendar の 18日目の枠です。

MySQLの残念な ST_Transform()

 ST_Transform() という関数があります。測地系を変換できる機能です。Tokyo測地系(別名日本測地系)で記述されている緯度経度を、JGD2000/2011 に変換したり、あるいは地理座標系の JGD2011の緯度経度を JGD2011の平面直角座標系の9系の座標 …

[さらに読む]
NULLと重複行に対するEXCEPT ALL

NULLと重複行に対するEXCEPT ALL

本エントリはFirebird Advent Calendar 2018の16日目です。

NULLと重複行に対するINTERSECT, INTERSECT ALLは説明しました。
では、EXCEPT ALLはどうでしょうか?

これも「プログラマのためのSQL 第4版 34.2.2 NULLと重複行に対するINTERSECTとEXCEPT」という部分に以下の回答があります。これの先頭に六行CTEの定義をつければ、そのまま動作します。(前回のブログと同じ)

-- S1 EXCEPT ALL S2(Firebird with CTEバージョン)
WITH RECURSIVE Series AS
(
SELECT 1 AS seq from …

[さらに読む]
とある豆腐のエラー考察(未完)

このエントリーは

に対する考察(?)エントリーです。 というわけでまずは まみー さんの↑のエントリーを読まれてからこのエントリーを読んでいただけると幸いです! …

[さらに読む]
NULLと重複行に対するINTERSECT

NULLと重複行に対するINTERSECT

エントリはFirebird Advent Calendar 2018の14日目です。

前日のエントリでFirebird(とMySQLも)INTERSECTとEXCEPTは対応していないことと、NULLや重複行がない場合はググればでてくるようなクエリでだいたい大丈夫ということを述べました。

では、NULLや重複行が「ある」場合はどうでしょう?

一つの解は「プログラマのためのSQL 第四版 日本語版」の「34.2.2 NULLと重複行に対するINTERSECTとEXCEPT」に掲載されているイツァック・ベンガン(itzik ben-gan)によるものがあります。

-- 利用するテーブル
CREATE TABLE S1(a1 CHAR(1));
INSERT INTO S1 VALUES('a');

[さらに読む]
utf8mb4_0900_ai_ci の速度をどう見るか

TL;DR

  • MySQL 8.0からデフォルトの照合順序が latin1_swedish_ci から utf8mb4_0900_ai_ci になった
  • さすがに latin1 をそのまま使っているとは思えないけれど、 utf8mb4 だけで見てもデフォルトは utf8mb4_general_ci から utf8mb4_0900_ai_ci に変更になっている
  • 「思ったよりは遅くならない」と見るか、「そんなに遅くなるのか」と見るかは人による気がする

まずは等価比較。
それぞれ10億回繰り返しているので、1回当たりの時間はナノ秒単位になる。
あと、データは保管せずただ比較しているだけなので、単純にCPU勝負のワークロードになる。

mysql80 8> SELECT BENCHMARK(1000000000, '1' = '1' COLLATE utf8mb4_0900_ai_ci) AS utf8mb4_0900_ai_ci; -- …
[さらに読む]
[勝手に対応]MySQL8.0の分析関数の2(Lag関数と累計と移動累計)

[勝手に対応]MySQL8.0の分析関数の2(Lag関数と累計と移動累計)

本エントリはMySQL Casual Advent Calendar 2018の11日目です。

MySQLでは8.0からウインドウ関数に対応しました。これにより商用RDBMS御三家+PostgreSQLが対応していた
多くの分析関数・ウインドウ関数が利用できるようになりました。

本エントリは以下のエントリの続きです。

[勝手に対応]MySQL8.0の分析関数の1(モードとメジアン)


1. 部分的に不一致なキーの検索

PostgreSQL …

[さらに読む]
オープンソースカンファレンス2018福岡(OSC2018-Fukuoka)参画

 12月8日に福岡で開催された OSC2018-Fukuoka に参加してきました。

www.ospn.jp

 今回も日本MySQLユーザ会として、ブース出展とセミナーの開催を行ってきました。
セミナーは、朝の2枠目(11時から)。事前申込みの人数をみて「まぁこんなものかな」と思っていたら、実際にはそれよりもたくさんの人が聞きに来てくれて、良い感じの規模でお話をさせていただきました。「MySQLの …

[さらに読む]
2329 件中 11 - 20 件を表示
« 前の 10 件 | 次の 10 件 »