27 件中 1 - 10 件を表示
次の 10 件 »
Displaying posts with tag: 8.0 (reset)
pfs_example_plugin_employee.so is 何

プラグインディレクトリーを覗いてたら pfs_example_plugin_employee.so なるファイルがあって知らないものなので調べてみた。 知らないプラグインを見つけた時の身元調査用に使えるかも知れないのでメモ。 まずはビルドしたディレクトリーの中で find 、MySQL(に限らないのかもだけど)ではコンパイルした時にソースコードのすぐとなりにバイナリーが出来上がるので、変に名前の一部からディレクトリーの名前を類推するよりもこっちの方が楽だったりする。

$ find -name "pfs_example_plugin_employee.so"
./plugin/pfs_table_plugin/CMakeFiles/CMakeRelink.dir/pfs_example_plugin_employee.so
./plugin_output_directory/pfs_example_plugin_employee.so

という訳でソースは plugin/pfs_table_plugin の近くにありそう。

[さらに読む]
MySQL 8.0.0で予約語だったROLEが8.0.1ではキーワードになっていたはなし

TL;DR

  • hmatsu47 さんに MySQLのキーワードと予約語 の中で「ROLEは予約語じゃなくてキーワード」と教えてもらった
  • 予約語とキーワードの違いは、 role_or_ident_keyword にリストされているかどうか? (ちなみに5.7だと単に keyword ってリストになってる)

シンボルのリスト

[さらに読む]
MySQL 8.0.2以降ではundoテーブルスペースファイルを勝手に拡張してくれるみたい

MySQL 5.7で InnoDB UNDO Log Truncation が追加されたものの、 innodb_undo_tablespacesmysqld --initialize の時に既に指定されていないといけなくて、一度ibdata1が初期化されてしまうと二度と変更できないという制約がありました。 こんなログが出て起動に失敗したりとか失敗したりとか失敗したりとか

2017-07-19T16:00:43.739980+09:00 0 [ERROR] InnoDB: Expected to open 2 undo tablespaces but was able to find only 0 undo tablespaces. Set the innodb_undo_tablespaces parameter to the correct value and retry. Suggested value is 0

ところで、 MySQL …

[さらに読む]
MySQL 8.0.1でバイナリーログに original_commit_timestamp と immediate_commit_timestamp が追加された

See also New monitoring replication features and more! | MySQL High Availability original_committed_timestampはマスターで実行された時のタイムスタンプが、immediate_commit_timestampはそのサーバーで実際に実行された時のタイムスタンプがそれぞれ入る。 単位はいずれもマイクロ秒。 マスターで実行した CREATE DATABASE d1 のバイナリーログ。

$ /usr/mysql/8.0.1/bin/mysqlbinlog master/data/mysql-bin.000002
..
#170428 17:54:25 server id 1 end_log_pos 226 CRC32 0xe0efd740 GTID last_committed=0 sequence_number=1 original_committed_timestamp=1493369665593157 immediate_commit_timestamp=1493369665593157
# original_commit_timestamp=1493369665593157 (2017-04-28 17:54:25.593157 JST)
# immediate_commit_timestamp=1493369665593157 …
[さらに読む]
MySQL 8.0のDROP TABLEがアトミックになっているっぽい件

MySQL 5.7とそれ以前で、「存在するテーブルと存在しないテーブルを一緒にDROP TABLE」しようとすると

mysql57> CREATE TABLE t1 (num int);
Query OK, 0 rows affected (0.01 sec)

mysql57> CREATE TABLE t3 (num int);
Query OK, 0 rows affected (0.01 sec)

mysql57> SHOW TABLES;
+--------------+
| Tables_in_d1 |
+--------------+
| t1 |
| t3 |
+--------------+
2 rows in set (0.00 sec)

mysql57> DROP TABLE t1, t2, t3;
ERROR 1051 (42S02): Unknown table 'd1.t2'

mysql57> SHOW TABLES;
Empty set (0.00 sec)

エラーにはなるけど消せるものは消える。 MySQL 8.0だと

mysql80> CREATE TABLE t1 (num int);
Query OK, 0 rows affected (0.01 sec)

mysql80> CREATE TABLE t3 (num int);
Query OK, 0 rows affected (0.01 sec)

mysql80> SHOW …
[さらに読む]
MySQL8.0とパーティションストレージエンジン

MySQL8.0からのパーティションについての確認
MySQL5.7からは、InnoDB Native Partitioningがサポートされるようになり、多くパーティションを利用している環境で、メモリーの利用率を大幅に下げる事が出来るようになっている。
MySQL8.0からは、Partition Storage Engineがディフォルトでロードされなくなるので注意を促す為に、MySQL5.7.17から”–disable-partition-engine-check”を設定して下さいというWarningがエラーログに出るようになっています。

yoku0825さんが速攻で確認して、ブログを書かれているので確認してみて下さい。

【InnoDB Native Partitioningに関して】

[さらに読む]
MySQL 5.7.17からエラーログに出るようになった deprecated partition engine に関するNote

こんなやつのこと。

2017-04-18T23:54:08.224673+09:00 0 [Note] /usr/mysql/5.7.18/bin/mysqld: ready for connections.
Version: '5.7.18-log' socket: '/usr/mysql/5.7.18/data/mysql.sock' port: 64057 Source distribution
2017-04-18T23:54:08.224691+09:00 0 [Note] Executing 'SELECT * FROM INFORMATION_SCHEMA.TABLES;' to get a list of tables using the deprecated partition engine. You may use the startup option '--disable-partition-engine-check' to skip this check.
2017-04-18T23:54:08.224696+09:00 0 [Note] Beginning of list of non-natively partitioned tables
2017-04-18T23:54:08.316219+09:00 0 [Note] End of list of non-natively partitioned tables

MySQL 8.0.0 で完全になくなることが決まった(というか8.0.0の時点でもうない) PARTITIONストレージエンジン

[さらに読む]
MySQL 8.0.1からJOIN_ORDERヒントが書ける

こんな、ORDER BY狙いのキーを使いたくなるクエリーがあるじゃろ?

mysql80> EXPLAIN SELECT Name, Language, Population, Percentage FROM CountryLanguage LEFT JOIN Country ON Country.Code= CountryLanguage.CountryCode WHERE Country.continent = 'Asia' ORDER BY Percentage LIMIT 5;
+----+-------------+-----------------+------------+------+------------------------------+---------+---------+--------------------+------+----------+----------------------------------------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-----------------+------------+------+------------------------------+---------+---------+--------------------+------+----------+----------------------------------------------+
| 1 | SIMPLE | Country | NULL | ALL | …
[さらに読む]
MySQL 8.0.1の新顔、GROUPING集約関数

TL;DR WITH ROLLUPの結果行をHAVING条件に書けるようすることができる。 それ以外の時には使わない。 MySQL :: MySQL 8.0 Reference Manual :: 13.20 Miscellaneous Functions 使い方。 そもそも WITH ROLLUP の使い方を知らないと楽しくもなんともないので WITH ROLLUP の説明から。 まずは WITH ROLLUP なしバージョン(SUM関数を噛ませてるのはあとで WITH ROLLUP した時のため)

mysql80> SELECT Continent, Name, SUM(Population) AS Population FROM country GROUP BY Continent, Name;
+---------------+----------------------------------------------+------------+
| Continent | Name …
[さらに読む]
MySQL 8.0.1でutf8mb4_ja_0900_as_csが導入された


Sushi = Beer ?! An introduction of UTF8 support in MySQL 8.0 | MySQL Server Blog (ユーザーによる日本語訳: 寿司=ビール問題 : MySQL 8.0でのUTF8サポート入門 (MySQL Server Blogより) | Yakst)で言及されていた日本語用の照合順序 utf8mb4_ja_0900_as_csMySQL 8.0.1 で実装されていたので試してみた。

mysql80> SHOW COLLATION LIKE 'utf8%ja%';
+-----------------------+---------+-----+---------+----------+---------+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+-----------------------+---------+-----+---------+----------+---------+
| utf8mb4_ja_0900_as_cs | …
[さらに読む]
27 件中 1 - 10 件を表示
次の 10 件 »