1156 件中 1 - 10 件を表示
次の 10 件 »
Displaying posts with tag: MySQL (reset)
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 …
[さらに読む]
MySQLのDATETIME型で秒の小数部を扱うときのDEFAULT句

この CREATE TABLE ステートメントは転ける。

mysql57> CREATE TABLE t1 (num INT UNSIGNED NOT NULL, dt DATETIME(3) DEFAULT CURRENT_TIMESTAMP);
ERROR 1067 (42000): Invalid default value for 'dt'

CURRENT_TIMESTAMP関数DATETIME(0)型 を返すので、dtカラムの型である DATETIME(3)型 と合わないからだというわけで、

mysql57> CREATE TABLE t1 (num INT UNSIGNED NOT NULL, dt DATETIME(3) DEFAULT CURRENT_TIMESTAMP(3));
Query OK, 0 rows affected (0.01 sec)

mysql57> SHOW CREATE TABLE t1\G
*************************** 1. row ***************************
Table: t1
Create Table: CREATE TABLE `t1` (
`num` int(10) unsigned NOT NULL,
`dt` datetime(3) DEFAULT …
[さらに読む]
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ストレージエンジン

[さらに読む]
Sandboxモードを利用したInnoDB Clusterの検証

MySQLで高可用性構成を実現する為の、新しいフレームワーク “InnoDB Cluster”がGAになりました。
http://mysqlserverteam.com/mysql-innodb-cluster-ga/

複数サーバーを用意して検証する事も出来ますが、手取り早く手元のlocalhost環境で検証したい場合はSandboxモードを利用すると良いでしょう。

詳細: Deploying Sandbox Instances
https://dev.mysql.com/doc/refman/5.7/en/mysql-innodb-cluster-getting-started.html#idc-deploy-sandbox-instances

■ MySQLインスタンスの作成 (3台~9台:奇数構成を推奨しています)

[さらに読む]
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 | …
[さらに読む]
MySQL8.0 Descending Indexのサポート

MySQL8.0から、Descending Indexがサポートされる。
これによりMySQL5.7と比較して、大きなテーブルでの降順(DESC)のデータ参照処理を、高速に実行する事が出来るようになる。小さいテーブルに関しては、既存のMySQL5.7でもインデックスが利用出来るので、それ程差は出ないかと思います。

MySQL8.0.1で、Sakila Sampleデータベースのrentalテーブルを参照した場合 (INDEXはASCで作成されている)


mysql> select @@version;                                              
+-----------+
| @@version |
+-----------+
| 8.0.1-dmr |
+-----------+
1 row in set (0.00 sec)

mysql> show create table rental\G                                     
*************************** 1. row ***************************
       Table: rental
Create Table: CREATE TABLE `rental` (
  `rental_id` int(11) NOT NULL AUTO_INCREMENT,
  `rental_date` datetime …
[さらに読む]
xtrabackupが実行中かどうかをSQLだけで確認する思考実験

はじまりは
畜生ペンギン@keny_lala のひとこと。

xtrabackupが今稼働中だよーってことがOSコマンドじゃなくてMySQLから分かる方法ありませんか?— kentarokitagawa (@keny_lala) 2017年4月13日



Percona Serverには LOCK TABLES FOR BACKUP とかあったよなと思いつつ、たぶんPercona Serverじゃないので置いておく。 xtrabackup-2.4.6のソースコードをナナメに読んでいくと、 SET SESSION wait_timeout = 2147483

[さらに読む]
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 | …
[さらに読む]
1156 件中 1 - 10 件を表示
次の 10 件 »