端的にいうと
-
SELECTのWHEREの条件の「右辺」に、RAND()やSYSDATE()のような非決定性関数を使うと、想定外のことが起こる。
- 戻ってくる行数が想定と異なる。
- Indexが効かなくなる。(テーブルフルスキャン走る)
どっちもなかなかのインパクトです。
追記:2019/05/30
PostgreSQLもMySQLと同じ挙動でした。(9.6と10系で確認)
Oracleは、MySQLや …
TL;DR
MY-010956 と MY-010957
がぼこぼこエラーログに吐かれることがある
2019-05-20T14:25:17.121864+09:00 5 [Warning] [MY-010956] [Server] Invalid replication timestamps: original commit timestamp is more recent than the immediate commit timestamp. This may be an issue if delayed replication is active. Make sure that servers have their clocks set to the correct time. No further message will be emitted until after timestamps become valid again.
2019-05-20T14:25:17.177804+09:00 5 [Warning] [MY-010957] [Server] The replication timestamps have returned to normal values.
免責事項
この記事はGeir Hoydalsvik氏によるMySQL Server Blogの投稿「MySQL Connection Handling and Scaling」(2019/3/19)をユーザが翻訳したものであり、Oracle公式の文書ではありません。
…
[さらに読む]TL;DR
information_schema.tables ( SHOW TABLE
STATUS はここから値を持って生きている)の値は information_schema_stats_expiry 秒間更新されない
SET SESSION information_schema_stats_expiry =
0 とかするとほぼ今まで通りの挙動になる
空っぽのテーブルを用意する。
mysql80 111566> SHOW TABLE STATUS\G
*************************** 1. row ***************************
Name: t1
Engine: InnoDB
Version: 10
Row_format: Dynamic
Rows: 0 …[さらに読む]
MySQL 8.0.14 から DB管理者用 に追加でネットワークインタフェースを設けることができるようになりました。
このように、接続あふれを起こしているときでも、管理者用IFであれば接続できます。
$ mysql -P3306 -uroot -pPass%word123 -h db01
ERROR 1040 (HY000): Too many connections
# 3307の管理者用IFに接続
$ mysql -P3307 -uroot -pPass%word123 -h db01
mysql>
利用するには、admin_port と admin_address
を設定します。ポート番号(admin_port)だけでなく、LISTENするIPアドレス(admin_address)も指定する必要があります。
[mysqld]
admin_address=db01
admin_port=3307
admin_address を省略したり、ワイルドカードを使うことはできないようです。
…
MySQL 8.0.14 から DB管理者用
に追加でネットワークインタフェースを設けることができるようになりました。
このように、接続あふれを起こしているときでも、管理者用IFであれば接続できます。
$ mysql -P3306 -uroot -pPass%word123 -h db01
ERROR 1040 (HY000): Too many connections
# 3307の管理者用IFに接続
$ mysql -P3307 -uroot -pPass%word123 -h db01
mysql>
利用するには、admin_port と admin_address
を設定します。ポート番号(admin_port)だけでなく、LISTENする …
TL;DR
NOT ENFORCED なんてオプションが “MySQLっぽい”
最初のFeature Requestから15年、ついにMySQL 8.0.16にCHECK制約が実装された。
アルファベットしか入ってほしくない val カラムに対して、ひらがなの “さん”
とかが入力されるのを制限できる、みたいなヤーツ。 …
最近、メールで「MySQL Lossless Semi-Synchronous Replication」について質問されることがありました。この質問への答えは多くの人にとって有益であると考えたため、回答をこのブログ記事に書きたいと思います。回答を読めば、トランザクションのコミット、準同期レプリケーション、MySQLのクラッシュリカバリ、ストレージエンジン(InnoDB)クラッシュリカバリの内部挙動について理解できるでしょう。同時に、私がこれまで見聞きしてきたいくつかの誤解についても糾したいと思います。まずはそれら誤解の一つから始めましょう。
…
[さらに読む]
mysql_config_editor は ログイン情報を管理するためのコマンドです。
~/.mylogin.cnf に難読化されたIDやパスワード、接続先の情報が記録されます。
$ strings .mylogin.cnf
#Xu*|
難読化されているので、中身を確認するには、my_print_defaults コマンドで表示する必要があります。
$ my_print_defaults client -s
--user=root
--password=Pass
--host=localhost
さて、このコマンドなんですが、シャープを含む文字列をうまく扱えないバグがあります。
Pass#word123 というパスワードが Pass になってしまっています。
シャープは設定ファイルではコメントを示します。
…