1922 件中 71 - 80 件を表示
« 前の 10 件 | 次の 10 件 »
Displaying posts with tag: MySQL (reset)
ANALYZE TABLE NO_WRITE_TO_BINLOG

Analyze Tableがレプリケートされない様にNO_WRITE_TO_BINLOGオプションを付けた場合の
バイナリーログの確認。殆どのケースで参照側でAnalyzeが実行されても問題は無いと思うが、
サンプリングのオーバーヘッドが無い訳ではないので、念のためのオプションとして。

By default, the server writes ANALYZE TABLE statements to the binary log so that they replicate to replicas. To suppress logging, specify the optional NO_WRITE_TO_BINLOG keyword or its alias LOCAL.

13.7.3.1 ANALYZE TABLE Statement

マスターログの確認

mysql> show master status;
+----------------------------+----------+--------------+------------------+-------------------+
| File                       | Position | Binlog_Do_DB | Binlog_Ignore_DB | …
[さらに読む]
MySQL 8.0でtx_isolationを使わせるようにするパッチ

TL;DR

  • ちょっと試してみただけなのでフツーに使うことはまずない。自分ですら使おうと思っていない。

パッチはこれだけ。

$ diff ./sql/sys_vars.cc.orig ./sql/sys_vars.cc
5196a5197,5204
> // NO_CMD_LINE - different name of the option
> static Sys_var_transaction_isolation Sys_tx_isolation(
>        "tx_isolation", "Default transaction isolation level."
>        "This variable is deprecated and will be removed in a future release.",
>        UNTRACKED_DEFAULT SESSION_VAR(transaction_isolation), NO_CMD_LINE,
>        tx_isolation_names, DEFAULT(ISO_REPEATABLE_READ), NO_MUTEX_GUARD,
>        NOT_IN_BINLOG, ON_CHECK(check_transaction_isolation));
>

両方使える ( tx_isolation がdeprecatedで transaction_isolation が推奨 ) MySQL 5.7.42の記述はこんな感じ。

[さらに読む]
DATETIME型と現在時刻の差分が秒数でほしい時に"-"で比較してはいけない

TL;DR

  • TIMESTAMPDIFF を使う
  • 知ってたはずなのにやらかしたので自戒を込めてメモ
mysql80 65> CREATE TABLE t11 (dt DATETIME);
Query OK, 0 rows affected (0.14 sec)

mysql80 65> INSERT INTO t11 VALUES (NOW());
Query OK, 1 row affected (0.05 sec)

mysql80 65> SELECT * FROM t11;
+---------------------+
| dt                  |
+---------------------+
| 2023-05-04 06:23:00 |
+---------------------+
1 row in set (0.01 sec)

この時刻との差が(整数の)秒が欲しいからと言って、

mysql80 65> SELECT NOW(), dt, NOW() - dt FROM t11;
+---------------------+---------------------+------------+
| NOW()               | dt                  | NOW() - dt |
+---------------------+---------------------+------------+
| 2023-05-04 …
[さらに読む]
MySQL 8.0.32にデフォルトコレーションをutf8mb4_general_ciにするパッチを当てる

地味にgrepから始める。

$ grep -r 'utf8mb4_0900_ai_ci' | grep -v mysql-test | grep -v scripts/fill_help_tables.sql | grep -v gunit

client/mysqltest.cc:    &my_charset_utf8mb4_0900_ai_ci; /* Default charset */
cmake/character_sets.cmake:  SET(DEFAULT_COLLATION "utf8mb4_0900_ai_ci")
include/m_ctype.h:extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_utf8mb4_0900_ai_ci;
man/myisamchk.1:Character set:       utf8mb4_0900_ai_ci (255)
mysys/charset-def.cc:extern CHARSET_INFO my_charset_utf8mb4_0900_ai_ci;
mysys/charset-def.cc:  add_compiled_collation(&my_charset_utf8mb4_0900_ai_ci);
plugin/x/src/mysql_variables.cc:  return &my_charset_utf8mb4_0900_ai_ci;
router/src/routing/src/sql_lexer.cc:            if (underscore_cs == &my_charset_utf8mb4_0900_ai_ci) {
router/src/routing/src/sql_lexer_thd.h:        &my_charset_utf8mb4_0900_ai_ci};
share/messages_to_clients.txt:  eng "Invalid default collation %s: utf8mb4_0900_ai_ci or utf8mb4_general_ci …
[さらに読む]
MySQLにおけるROLLBACK処理の確認

もしMySQLにおいてROLLBACK処理が発生したら?どのくらい時間がかかるか確認する為の指標。

START TRANSACTIONまたはBEGINでを使用すると、トランザクションを COMMIT または ROLLBACK で終了するまでは、自動コミットは無効のままになるので、以下の様に明示的にトランザクション内で処理を実行して、該当プロセスをKillコマンドでCOMMIT前に停止しました。当然ながらROLLBACK処理が実行されるのですが、大量にデータを扱っている場合にどれだけ時間がかかるか不安な場合もあるかと思います。全てのケースで確認した訳ではないですが、以下の様にINFORMATION_SCHEMA.INNODB_TRXテーブル内のtrx_rows_modifiedを確認する事でおおよその目途を付ける事が可能です。

1.テスト用の処理を実行

2. …

[さらに読む]
MySQL 8.0で導入された動的権限を利用してたけのこ派にCOUNTを使えなくする

TL;DR

  • 今日は2023年4月1日ですし、私はたけのこ派です

動的権限とは、MySQL 8.0で加わった「 mysql.user やその他のテーブルに独自のカラムを持た ない タイプの権限」のことらしい。

MySQL :: MySQL 8.0 リファレンスマニュアル :: 6.2.2 MySQL で提供される権限

↓このへんが「静的権限」で

mysql> DESC mysql.user;
+--------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                    | Type                              | Null | Key | Default               | Extra |
+--------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                     | char(255) …
[さらに読む]
今日は、話題になってたMySQLのバックアップ方法について比較してみたの日。

目次

[さらに読む]
WinDbgでMySQL on Windowsのミニダンプの中身を見てみる
[さらに読む]
MySQL 8.0ならGTIDのスキップはもっと簡単になる

TL;DR

とはいえそもそもSQL Threadが止まってイベントをスキップしなければならないような事態になったら、レプリカを真っ新に作り直した方が良いというのは相変わらず思っている。
MySQL 8.0ならCloneプラグインもあるしね。

[さらに読む]
Foeign Key制約によって暗黙に作成されたINDEX or NOT

TL;DR

(num, val) を持ったテーブルが2つ、numはどちらでもPKE、valはt1でだけUNIQUE KEY。

mysql80 46> SHOW CREATE TABLE t1\G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `num` bigint unsigned NOT NULL AUTO_INCREMENT,
  `val` varchar(32) DEFAULT NULL,
  UNIQUE KEY `num` (`num`),
  UNIQUE KEY `val` (`val`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 …
[さらに読む]
1922 件中 71 - 80 件を表示
« 前の 10 件 | 次の 10 件 »