2020年7月に出た「MySQL徹底入門 第4版」という本は MySQL 8.0.20 をベースとしてたんですが、ご存知の通り MySQL 8.0 はパッチリリースでどんどん機能が追加されてったりするんで、同じ 8.0 でも最新版とは機能の差分が出てしまってます。 ということで、自分が執筆した分について、8.0.23 までで変わった分についてまとめてみます。 5.1 アカウントの作成と権限の付与 8.0.21 から CREATE USER と ALTER USER 時に COMMENT と ATTRIBUTE でコメントや属性を付与できるようになりました。 5.2 アカウント識別 クライアントから接続した場合は、ワイルドカードを含まない接続元が一致するもの、その後ワイルドカードを含むもの、そして最後に空文字のアカウントの順に検索されます。つまり 192.168.1.0/255.255.25
この記事の目的 自分は、とある会社様の元でソシャゲの API 開発をさせていただいています。 ソシャゲは、リリース時やイベント時などに集中アクセスされやすく、負荷軽減の知識がない状態で開発を行ってしまうと、運用時に緊急メンテ祭りになりやすいジャンルかなと思っています。 これまで培ってきた MySQL の知識ですが、脳内メモリ量の関係上、暗記できないのでメモしておこうというのが主目的です。 ここ数年ほどソシャゲ開発しかしていないため、偏っている感がある内容ですのでご注意ください。 概要 ストレージエンジンは InnoDB。メインで扱っている MySQL バージョンは 5.6。 記事の内容ですが、これらのキーワードを見て、おおよそ分かる方は読む必要はないかと思います。 インデックス系 クラスタインデックス カバリングインデックス EXPLAIN で注意するべき値 トランザクション系 MVCC
こんにちは、サービス開発部の荒引 (@a_bicky) です。 突然ですが、RDBMS の既存のテーブルを見てみたら「何でこんなにインデックスだらけなの?」みたいな経験はありませんか?不要なインデックスは容量を圧迫したり、挿入が遅くなったりと良いことがありません。 そんなわけで、今回はレコードを検索するために必要なインデックスの基礎知識と、よく見かける不適切なインデックスについて解説します。クックパッドでは Rails のデータベースとして主に MySQL 5.6、MySQL のストレージエンジンとして主に InnoDB を使っているので、MySQL 5.6 の InnoDB について解説します。 InnoDB のインデックスに関する基礎知識 インデックスの構造 (B+ 木) InnoDB では B+ 木が使われています。B+ 木は次のような特徴を持った木構造です。 次数を b とすると、
Doing Release upgrade from 14.04 to 16.04, mysql-5.7-server/mysql-server failed during post-installation. Before upgrade: lsb_release -rd Description: Ubuntu 14.04.4 LTS Release: 14.04 After upgrade: lsb_release -rd Description: Ubuntu 16.04 LTS Release: 16.04 apt-cache policy mysql-server-5.7 mysql-server-5.7: Installed: 5.7.11-0ubuntu6 Candidate: 5.7.11-0ubuntu6 Version table: *** 5.7.11-0ubuntu
2010年03月10日21:35 カテゴリ MySQLのdatetime型をUNIX TIMEへ変換、UNIX TIMEをdatetime型へ変換する関数 MySQLでデータを取り扱う際、日付・時刻関連のデータはdatetime型で管理するようにしています。datetime型で保存したデータは「YYYY-MM-DD hh:mm:ss」という形になります。 現在時刻を取得する場合を例にすると ・現在時刻取得 select now(); この場合「YYYY-MM-DD hh:mm:ss」という形で出力されます。 ・UNIX TIMEへ変換 select unix_timestamp(now()); select unix_timestamp('2010-01-01 11:22:33'); この場合「1262312553」というUNIX TIMEの形で出力されます。 ・datetime型へ変換
以下のようなテーブルがあるとします。 Aテーブル Bテーブル 以下のようなSQLを流すと、 SELECT A.id, GROUP_CONCAT(B.bname) as namae FROM A, B WHERE A.id = B.aid GROUP BY A.id こんな風に、まとめてくれました。 そのほか、以下のようなこともできます。 昇順・降順に並べてくれる GROUP_CONCAT(B.bname order by B.id) 重複する名前をまとめてくれる GROUP_CONCAT(distinct(B.bname)) 区切り文字指定もできる GROUP_CONCAT(B.bname separator '/') 参考 ・ MySQLの独自の関数なので、他のデータベースを使う場合は要検討(Oracleだとwmsys.wm_concatがあるなど)。 ・ NULLを含む場合注意。 この
MySQL 5.7.4で導入されたdefault_password_lifetimeがじわじわくる(MySQL 5.7.11でFIX!!) 【2016/01/13 10:12】 MySQL 5.7.11でdefault_password_lifetimeのデフォルトは0に変更になりました! それ以降のバージョンであればこの記事の内容は気にする必要はありません。 日々の覚書: MySQL 5.7.11でdefault_password_lifetimeのデフォルトが0になるらしい! TL;DR default_password_lifetime= 0 を秘伝のmy.cnfに入れておくつもり。 MySQL :: MySQL 5.7 Reference Manual :: 5.1.4 Server System Variables パラメーターの意味は読んで字のごとく、「最後にパスワードが更新さ
(最終更新日: 2017/9/25) はじめに production 環境で MySQL 5.6 動かすためのパラメータ設計についてまとめました。この記事がカバーする内容は次のとおりです。 パラメータを設定するスクリプト。 各パラメータにおける変更するかどうかの判断基準。 想定されるメモリの消費サイズを算出してパラメータが妥当かどうか確認する方法。 サービスの状況に応じててきぎ読みかえてください。 【結論】パラメータグループ作成・パラメータ設定のスクリプト 結論として、パラメータグループを作成し、パラメータを設定する aws-cli のスクリプトを置きます。Amazon AWS の Web Console から設定することもできます。 #!/bin/sh # == パラメータグループ作成 aws rds create-db-parameter-group --db-parameter-gr
それほどDBに詳しくないアプリエンジニアが何かトラブった時にすぐさま行動して問題把握できるようになる情報を列挙しておきます。 開発時、障害時の対処療法やちょっとした定期監視方法などを対象にしています。 抜本的な対策などはインフラエンジニアさんにお任せしたほうがいいと思います。 DBはいろんな意味でこわいんでできれば触りたくないです>< 事前確認 MySQLサーバーのシステム設定値を確認しておく 以下のようにサーバーのシステム設定値を確認できます。 mysql> SHOW GLOBAL VARIABLES; # ワイルドカード(%)を用いた絞り込み mysql> SHOW GLOBAL VARIABLES LIKE 'performance_schema%'
新しい情報を盛り込み、信頼性や正確さといった目標を重視するという前版からの方針に加えて、第3版では、MySQLの動作の仕組みに関する事実だけでなく、MySQLがそのように動作する原理を伝えたいと考えて執筆されている。そうした原理の実質的な効果を示す、より具体的なストーリーやケーススタディを盛り込んで、それらをベースとして、「MySQLの内部のアーキテクチャや処理がそうなっているとしたら、実際の使用状況で実質的にどのような効果が得られるのか」、「そうした効果はなぜ重要なのか」、「結果として、MySQLは特定のニーズにどのように適しているか、あるいは適していないか」という質問に答えている。MySQL管理者やアプリケーション開発者が求める必須の知識や手法を掘り下げて、問題や課題に対して実践的な考え方と解決の手法を示す。読者のMySQLについての理解と技術を一段高いレベルに引き上げる。改訂第3版。
Railsで使っているデータ(UTF-8)→mysqldump→WindowsのMySQLの中へ移動の際にエラーが出た。対処法は、Importの際に元のデータの文字コードにあわせて、「--default-character-set=utf8」を付けることみたい。 C:\home>mysql -u user database < dump.sql ERROR at line 51: Unknown command '\''. C:\home>mysql -uroot --default-character-set=sjis dokuzetsu_devel < dump.sql ERROR at line 51: Unknown command '\''. C:\home>mysql -uroot --default-character-set=utf8 dokuzetsu_devel < d
7月29日にMyNA(日本MySQLユーザ会)会 2013年7月が行われ、Oracle ACE Directorの@sheeriさん、MyNA会長の@tmtmsさんに混ざって発表をしてきました。運営のみなさま、当日お越しいただいたみなさま、いつもありがとうございます。 Performance Schema - Sheeri Cabral (PDF) MyNA会2013年7月 に行って来ました - MySQLのプロトコル解説 - @tmtms のメモ 今回は@yoku0825さん、@yyamasaki1さんがライトニングトークをされました。@yoku0825さんアイスごちそうさまでした。 日々の覚書: MyNA会2013年7月に行ってきました 5分で作るMySQL Cluster環境 私は発表内容について懇親会でいろいろ宿題をもらってしまい、しばらく復習をしていました。ようやく修正が終わりま
Red Hat ditches MySQL, switches to MariaDB RHEL 7からは、従来のMySQLに変えて、MariaDBがデフォルトのデータベースソフトウェアになるそうだ。 MySQLはSunに買収された後、SunがOracleに買収されたことにより、Oracleの所有物となった。Oracle傘下となった後も開発は続いているが、テストケースやバグトラッカーや脆弱性の修正情報などが非公開になり、その閉鎖的な開発姿勢が利用者の反感を買い、ついにオリジナルの作者であるMontyを筆頭にMariaDB財団が立ちあげられ、MariaDBとしてforkされた。 ここ最近、多くのGNU/Linuxベースのディストリビューションが、デフォルトのデータベースソフトウェアをMySQLからMariaDBに切り替える動きがみられる。ついにRed Hatも追従したようだ。 Slashdot
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く