1927 件中 71 - 80 件を表示
« 前の 10 件 | 次の 10 件 »
Displaying posts with tag: MySQL (reset)
今日は、MySQLのリファレンス「第 15 章 InnoDB ストレージエンジン」を読むの日(その1)。

目次

[さらに読む]
オープンソースカンファレンス(OSC)2023北海道参画

4年ぶりの札幌現地開催 今年4月の東京開催を皮切りに、オープンソースカンファレンスもオフライン開催の動きが戻ってきました。 中止となった2020年は、交通機関や宿のキャンセルにてんやわんやだった記憶があります。キャンセル料なしで全額返ってきたりして、運輸も宿泊も大変だなぁと思っていました。 現時点でのOSCの開催形態は、以前とは異なり「ブース展示をオフラインでやりましょう」という流れになっています。セミナーの部は展示とは別の日にオンラインで開催。ブースでのコミュニケーションにOSCの魅力を感じている私にとってはセミナー併設でない展示のほうが、たくさんの人とお話ができるので嬉しいのですが、集客や…

今日は、MySQL のスロークエリーが判定されるのに順序があるみたいの日。

目次

[さらに読む]
OPTIMIZE TABLE 

OPTIMIZE TABLEを実行する代わりに、以下の様にALTER TABLEを実行するケースも多いと思います。
バックグラウンドでどの様に処理しているかを聞かれる事も多いのでこちらにメモしておきます。

alter table sbtest6 engine=InnoDB, ALGORITHM=INPLACE, LOCK=NONE;

OPTIMIZE TABLE中の一時テーブル処理

# stat city_sample1.ibd
  File: ‘city_sample1.ibd’
  Size: 5272240128      Blocks: 10297376   IO Block: 4096   regular file
Device: 10301h/66305d   Inode: 96469157    Links: 1
Access: (0640/-rw-r-----)  Uid: (  995/   mysql)   Gid: ( 1001/   mysql)
Access: 2023-04-21 22:33:34.264902911 +0000
Modify: 2023-04-21 23:27:00.503985634 +0000
Change: 2023-04-21 23:27:00.503985634 +0000
 Birth: -
 
# /usr/local/mysql/bin/mysql -u root -p -e "optimize table shell.city_sample1"
Enter password: …
[さらに読む]
今日は、前から気になってたmysqlslap を使ってみるの日。

目次

[さらに読む]
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. …

[さらに読む]
1927 件中 71 - 80 件を表示
« 前の 10 件 | 次の 10 件 »