
- Q1
- QAの活用方法が知りたい
ノーコードで誰もが直感的に使えるユーザー行動解析ツールWordPress公式プラグイン「QA Heatmap nalytics」(株式会社ウェブジョブズ(代表:丸山耕二))は、Jリーグに所属するヴィッセル神戸のサポートファミリー会員ならびに、WEリーグに所属するINAC神戸レオネッサ100オーナーズクラブ会員となりましたことをお知らせいたします。今後、Jリーグ・WEリーグで活躍するヴィッセル神戸、INAC神戸レオネッサと共に、神戸市周辺地域の活性化に貢献してまいります。
【協賛について】
協賛内容 | ヴィッセル神戸 サポートファミリー(2021年度ブロンズ会員) INAC神戸レオネッサ 100オーナーズクラブ(2021年度ブロンズ会員) |
契約先 | ヴィッセル神戸、INAC神戸レオネッサ |
契約期間 | 2021年7月1日~12月31日 スタジアムに設置されるボードへの広告の掲出の他、 オフィシャルサイトにも掲出されます。 |
【協賛に至る背景】
QA Heatmap Analyticsは、「日本から世界へ」をテーマの1つとして掲げ、その第一歩として地元・神戸から世界に誇れるヒト・モノ・コトが誕生するお手伝いをしていきたいと考えております。
その一環として、神戸市周辺地域にお住まいの方、企業・商店との結びつきを強化するべく、神戸に密着しサッカーを通じて地域社会に貢献し世界基準を目指して戦う、ヴィッセル神戸とINAC神戸レオネッサに協賛いたしました。
名前:くーすけ
誕生日:9月4日
生まれ:神戸市
性別:♂
性格:人なつっこくて困ってそうな人がいたらすぐ関西弁で声をかけてしまう。今一番夢中になっていることは「分かりやすく人に伝えること」。
好きなもの:チョコレートが大好き!ほかにも好きなものはいっぱい。ごはん、お散歩、サッカー、るろ剣などなど
QA ヒートマップアナリティクスはユーザー行動解析プラグインなんやけど、QuarkAっていう行動データ分析プラットフォームのひとつらしいわ。
QuarkAってなんて読むか分かりにくいやろ?社員のだれかが「クオッカ?」って聞いたらしい。ほんでクオッカが公式キャラに選ばれたんやって。(単純やなぁ…)
ま、ちなみに名前がくーすけに決まったもんもほんま最近のことやし、それまではいろんな人から「あのキャラ、犬なん?」って言われとったし…犬ちゃうで!クオッカやで!!
これからも売れるブログやホームページのポイントや分析方法をどんどん発信していくのでよろしくねー
「世界一しあわせな動物クオッカ」オリジナルステッカー(5枚セット)を抽選で39名様にプレゼント!
\Wチャンス!/
さらに当選された方の中から1名にQA Heatmap Analyticsパーソナルライセンス3か月分(1万円相当)をプレゼント!
[応募期間:2021年3月12日(金)23:59まで]
→「お友達紹介でQAライセンスGet」コースの応募はこちらから
2020年2月12日にβ版をリリースして1年。
みなさんに感謝をこめて「QA 1周年記念ありがとうWキャンペーン」を開催します。
参加方法は、TwitterのQA Heatmap Analytics公式アカウント(@QuarkA_JP)をフォローし、「QA 1周年記念ありがとうWキャンペーン」の対象ツイートをリツイートするだけ。
「世界一しあわせな動物クオッカ」オリジナルステッカー(5枚セット)を39名様にプレゼント!
PCやタブレット・スマホなどに可愛く貼って、邪魔にならない大きさ(約5cm×5cm/1枚)です。
→「お友達紹介でQAライセンスGet」コースの応募はこちらから
すでにQA Heatmap Analytics公式アカウント(@QuarkA_JP)をフォローしていただいている方は、手順2のみで応募完了です。
キャンペーン応募期間終了後、厳正な抽選を行ないます。
当選された39名様に、QA Heatmap Analytics公式アカウント(@QuarkA_JP)からDMでご連絡いたします。
当選発表連絡までに公式アカウントのフォローを外さないようご注意ください。
また、当選された方の中から1名にQA Heatmap Analyticsパーソナルライセンス3か月分(1万円相当)がWチャンスで当たります。
こちらもTwitter DMでご連絡いたします。
当選連絡のDMで、ステッカー発送(39名様)およびパーソナルライセンスキー発行(1名様)のために必要な情報入力フォームをお知らせします。
ステッカーの発送は2021年3月下旬頃を予定しておりますが、諸事情により発送が前後することがございます。ご了承ください。
2021年2月12日(金)~2021年3月12日(金)23:59まで
\全員に当たる!/
お友達を1人紹介で、QA フレンドライセンスを全員にプレゼント!
\先着で当たる!/
お友達を5名紹介で、QA Heatmap Analyticsパーソナルライセンス3か月分(1万円相当)を、先着9名様にプレゼント!
\抽選で当たる!/
お友達にブログやTwitter等で QA Heatmap Analyticsを紹介してくれたら、「世界一しあわせな動物クオッカ」オリジナルステッカー(5枚セット)を、抽選で9名様にプレゼント!
[応募期間:2021年3月12日(金)23:59まで]
2020年2月12日にβ版をリリースして1年。
みなさんに感謝をこめて「QA 1周年記念ありがとうWキャンペーン」を開催します。
参加方法は、QA Heatmap Analytics(WordPress 公式プラグイン)をあなたのサイトにダウンロード/インストールするだけ。
QA Heatmap Analyticsはアカウント登録不要・無料で、インストール初期は1ページのみ計測可能です。
お友達に紹介すればするほど計測ページを増やすことができる「QA フレンドライセンス」を、キャンペーン参加された全員にプレゼントします!
QA Heatmap Analyticsはアカウント登録不要・無料で利用できます。
無料版と有料版の大きな違いは、計測できるページ数と今後拡張される追加機能。
QA Heatmap Analytics(WordPress 公式プラグイン)をあなたのサイトにダウンロード/インストールして、お友達を5名以上紹介してくれた方から、QA Heatmap Analyticsパーソナルライセンス3か月分(1万円相当)を先着9名様にプレゼント!
QA Heatmap AnalyticsをブログやTwitter等でお友達に紹介してくれたら、「世界一しあわせな動物クオッカ」オリジナルステッカー(5枚セット)を抽選で9名様にプレゼント!
PCやタブレット・スマホなどに可愛く貼って、邪魔にならない大きさ(約5cm×5cm/1枚)です。
QA Heatmap Analyticsを
あなたのサイトにダウンロード/インストール
お友達紹介プログラムに参加する
発行された「あなたの紹介URL」を
あなたのブログ・Twitter・メール・チャットなどに貼り付けて、お友達にQA Heatmap Analyticsを教える
すでにQA Heatmap Analyticsをインストールしてご使用いただいている方は、2以降の手順で応募完了です。
すでにQA Heatmap Analyticsをインストールしてご使用いただき、かつお友達紹介プログラムにご参加いただいている方も参加できます。
2021年2月12日(金)から紹介いただいたお友達の数でカウントします。
全員にプレゼントする特典1「QA フレンドライセンス」のライセンスキーは、お友達紹介プログラムに登録いただいたメールアドレス宛にQA Heatmap Analytics事務局からメールでお送りいたします。
特典2「QA パーソナルライセンス」は、お友達紹介プログラムに登録し、紹介したお友達がQAを使い始めた人数が5名に達した方へ、先着順に9名様に当たります。
先着9名様に発行されるライセンスキーは、登録いただいたメールアドレス宛にQA Heatmap Analytics事務局からメールでお送りいたします。
特典3「クオッカステッカー」は、QAをブログなどで紹介いただいたことをQA事務局が確認した方から厳正な抽選を行ないます。
当選された9名様に、お友達紹介プログラムに登録いただいたメールアドレス宛にQA事務局からメールでご案内をお送りいたします。
特典2、特典3に当選された方にお送りするメールで、パーソナルライセンスキー発行(9名様)およびステッカー送付(9名様)のために必要な情報入力フォームをお知らせします。
ステッカーの発送は2021年3月下旬頃を予定しておりますが、諸事情により発送が前後することがございます。ご了承ください。
2021年2月12日(金)~2021年3月12日(金)23:59まで
→もう一つのコースも同時エントリ可能です「Twitterフォロー&RT」コースの応募はこちらから
QA Heatmap Analytics ver1.0を2020年11月24日リリースいたしました。
無料で高機能な「行動データ分析ツール QA Heatmap Analytics」は、11月2日にリリースした ver0.9 において、ユーザーの動きを録画し動画再生(セッションリプレイ)する機能を実装しています。
今回リリースしたver1.0のアップデートでは、動画再生の機能をさらに強化し、ユーザーが最初にアクセスしたページ以外もリプレイ再生できる機能を実装しています。
QA Heatmap Analyticsには、ビジネス向上や効率化のためにさまざまなサービスを受けることができる各種プランが用意されています。
例えば、メンバーズサイトで技術サポートが受けられたり、QA Heatmap Analyticsで全自動、無制限でページデータを取得し、分析に役立てるなどができます。
▼QA Heatmap Analytics ver1.0無料ダウンロード
WordPressプラグイン公式サイトよりダウンロードができます。
https://wordpress.org/plugins/qa-heatmap-analytics/
▼QA Heatmap Analytics 開発ロードマップ
https://quarka.org/roadmap/
▼QA Heatmap Analytics プラン
https://quarka.org/plan/
▼ウェブサイト分析ソフトウェア開発の舞台裏
https://quarka.org/analytics-product-development-story-1/
QA Heatmap Analytics ver0.7を2020年8月27日リリースいたしました。
2月より無料配布しておりましたQA Heatmap β版からデータ構造を刷新し、無料で高機能な「行動データ分析ツール QA Heatmap Analytics」へと生まれ変わりました。
QA Heatmap Analyticsには、ビジネス向上や効率化のためにさまざまなサービスを受けることができる各種プランが用意されています。
例えば、メンバーズサイトで技術サポートが受けれたり、QA Heatmap Analyticsで全自動、無制限でページデータを取得し、分析に役立てるなどができます。
▼QA Heatmap Analytics ver0.7 無料ダウンロード
WordPressプラグイン公式サイトよりダウンロードができます。
https://wordpress.org/plugins/qa-heatmap-analytics/
▼QA Heatmap Analytics プラン
https://quarka.org/plan/
2020年秋にはver1.0にアップデートを予定しています。
ver1.0ではリアルタイム再現動画の機能が追加され、来年度には分析機能をさらに充実させていく予定です。
▼QA Heatmap Analytics 開発ロードマップ
https://quarka.org/roadmap/
Webの世界は、対面での接客と違い、ユーザーとコミュニケーションを簡単には取ることができません。
「ユーザーが何を思い、何を感じているのか?」ユーザーの顔を見ることも、意見を聞くこともできません。
日本には、相手の心情を察し気遣う「思いやり」という言葉がありますが、ユーザーのことが何もわからない状態では、適切な「思いやり」ができません。
そして、ときに一方通行の思いやりは、大きな勘違いをも生み出します。
そうならないためには、定期的に行動分析をし、ユーザーの意思を確認していく必要があります。
私たちQuarkAの目標は、サイト運営に携わる世界中のすべての人に、手軽で簡単にユーザーの行動分析ができるツールを提供することです。
先輩たちが世界から勝ち取った「MADE IN JAPAN」の称号。
私たちQuarkAもその精神を受け継ぎ、この日本のソフトが世界中を驚かすことを夢みています。
日本から世界へ。
例えば、本日のメルマガ送付。今、サイトに何人くらいが訪問しているか気になりますよね。そんな時に使えるのがダッシュボード(リアルタイム表示)です。
QA Heatmap Analyticsは、導入するとすぐに計測を開始し、その状況をダッシュボードに表示します。
面倒な設定は一切なしで、最初からダッシュボードにリアルタイムのアクセス状況が表示されます。参照元はreferrer、もしくはutm_sourceの値を表示します。
先輩達が世界から勝ち取った「MADE IN JAPAN」の称号。
私たちもその精神を受け継ぎ、日本のソフトが世界中を驚かすことを夢みています。
私たちの目標は、サイト運営に携わる世界中の全ての人(以下サイト運営者)に、手軽で簡単にサイト訪問者(以下ユーザー)の行動分析ができるツールを提供することです。
ユーザーの行動分析というと、何やら難しいことをするように思われがちですが、私たちは「ユーザーとコミュニケーションを取るはじめのステップ」だと思っています。
Webの世界は対面での接客と違い、ユーザーとコミュニケーションを簡単には取ることができません。
「ユーザーが何を思い、何を感じているのか?」ユーザーの顔色を見ることも意見を聞くこともできません。
日本には、相手の心情を察し気遣う「思いやり」という言葉がありますが、ユーザーのことを何もわからない状態では適切な「思いやり」ができません。ましてや、一方通行の思いやりは、大きな誤解や勘違いをも生み出します。
そうならないためには、定期的に行動分析をし、ユーザーの意思を確認していく必要があります。
この「QA Heatmap Analytics(キューエーヒートマップ アナリティクス)」は、まさに、ユーザーの意思をサイト運営者に届ける最良のツールです。
そして、このツールの特筆すべき点は、「導入が驚くほど簡単だ」ということです。
多くの場合、ユーザーの行動分析をしようとしても導入までの手順が多く、しかも専門知識まで必要なケースがありますが、これまでの常識を覆すほどの簡単さを実現しています。
サイト運営者にプログラミングの知識が全くなくても、簡単に導入し、活用することが可能です。
しかもツールは原則無料でご利用いただけます。
このツールを多くの方に活用していただき、Web上に溢れるコンテンツが、常にユーザーの意思を取り入れたものになっていくことで、より便利で豊かな社会の実現につながることを確信しています。
このツールは、インストールするだけで、以下の分析が簡単に行えるようになります。
将来的には、「ユーザー行動の再現動画の再生」や「多角的な行動分析」、「テストを自動で行い、最適な答えを導き出すオートメーションツール」へと変貌を遂げるべく開発を行っています。
これらが実現することで、まさに「MADE IN JAPAN」の称号に相応しい、世界を驚かせるツールとなるでしょう。
ユーザー行動のヒートマップ表示については、すでに実装されていますので、こちらをご確認ください。
ユーザーがどこから、どのページに訪れ、どのページで離脱したのか。滞在時間などのデータを取得し、一覧表示します。
ユーザーがどこのページのどの部分をみているのか、スクロールのスピードや動きを解析し描写する機能です。
スクロールのスピードや、上下への動きなどを見ることで、ユーザーの感情を把握しやすくなります。
上記のセッションリプレイ情報をデータベースに保存し、いつでも閲覧できるようになります。
→ 開発ロードマップ
すべての機能は以下のポリシーに従って開発されています。
蓄積されるユーザー情報は、「サイト運営者の資産」であると考えています。QA Heatmap Analyticsが取得するユーザー情報は、サイト運営がなされているサーバー内に、個人が特定できない情報かつ外部から閲覧できない形で安全に保存されます。
外部企業に干渉されることなく大切な資産を守ります。
すべての機能は、日本の個人情報保護法のガイドラインに準拠しながら実現します。ユーザーの特定につながる個人情報を保持することなく、すべての機能をご利用いただけます。
上記の点から、不測の事態が起きQA Heatmap Analyticsのユーザー情報が第三者に流出したとしても、大切なユーザーの個人情報が流出することはありません。
現在もさまざまな方からいただくご意見を取り入れ頻繁にバージョンアップ行なっています。
これからもより良いツール、より使いやすいツールへと進化していきます。
最後になりましたが私たち自身も、このQA Heatmap Analyticsをご利用くださるサイト運営者(以下 ご利用者)とのコミュニケーションを非常に大切にしています。そしてツールは導入して終わりではなく、ご利用者に十分な結果を出していただいてこそ意味があると考えています。
不定期ですが、QAM(ユーザー会)を実施しています。より良いツールにしていくために、開発者とご利用者が直接顔を合わせ、意見交換などをおこなっています。
→ QAM(ユーザー会)
ご利用者からフィードバックしていただいた情報への対応は、できるだけ開発の優先度を高く設定し対応しています。
フィードバックは以下より簡単におこなっていただけます。
→ フィードバック
QA Heatmap Analyticsをご利用いただきユーザー行動分析を行うなかで出てくる疑問や課題解決にお役に立てる情報を発信してまいります。
有料版をご購入いただきました方は、サポートサイト内フォーラムよりプライベートの質問を行えます。
※勉強会コミュニティおよびサポーター制度は順次ご案内いたします。
「QA Heatmap β版」から「QA Heatmap Analytics」に変わります。
データ構造を刷新し、無料かつ高機能な「行動データ分析ツール」としてリリースいたします。
近日リリースをご案内します。リリース後はぜひ公式版に切り替えていってくださいね。
「QA Heatmap Analytics」には有料プランもご用意しており、β版にご協力いただきましたみなさまには「ありがとうクーポン」を発行する予定です。
公式版リリースをお楽しみに!
なおβ版は2020年12月31日まで利用できます。
また公式リリースに伴い、β版お友達紹介プログラムの紹介URLが変わります。
公式版リリース後、公式版お友達紹介プログラムで発行される「紹介URL」が変わり、公式版リリース以前に発行されたβ版の「紹介URL」はご利用いただけなくなります。
β版お友達紹介プログラムで発行された「紹介URL」をブログやSNSなどでご紹介いただいているみなさま、ご注意ください。
公式リリース後は、ぜひ公式版お友達紹介プログラムをご活用ください。
MySQL(※1)にはパーティショニング機能があります。
これは、一つのTableで膨大なデータを管理しなければいけない時に使える手法で、論理的に1つに見えるTableを、内部的にはわけて管理(=パーティショニング)することができます。
しかしMySQLの公式ページが一番詳しいものの、いまいち分かりづらかったり、かといって日本語でまとまった情報がなかったりしますので、構築時に困りがちです。
例えば、パーティショニングで作成方法を間違えると下記のようなエラーがでます。
A UNIQUE INDEX must include all columns in the table’s partitioning function
この対処は後述しますが、そもそもパーティショニングの概念をおさえておくと早いと思いますので、ここで簡単にまとめておきます。
※1 正確にはOracleなど他のRDBMSにもあります。
冒頭でも触れましたが、パーティショニングは膨大なデータ量を1つのTableで扱いたい時に使える手法です。
そもそも1つのTableに数百万行といった量のデータが入る場合、ちょっと速度や容量などが怖いですよね。しかし、QA Heatmap Analyticsもそうですが、ウェブ行動データのような膨大なデータを長期間扱おうとすれば、どうしてもTableサイズは膨大になってきます。
こういった時に、例えば毎月ごとにTable名をわけて管理することが考えられます。
例えば202001_log、202002_log、202003_log、、といったTableをどんどん作っていくという手法です。そうすれば1つのTableサイズは小さくて済みます。
しかし、この手法では同じ意味のTableが無駄に多数できてしまい、月またぎのSQLも難しくなってきて、管理もしづらくなってしまいます。このような時にパーティショニングが有効です。
パーティショニングは、内部的にはTableがわかれるものの、Table名は一つです。例えば先ほどの例では以下のようになります。
Table名:log
※内部パーティション
p202001
p202002
p202003
このようにすると、SQLはもちろんTable「log」に対して行えるので月またぎのSQLも今までどおりシンプルになりますし、場合によってパーティションを指定して検索することもできます。
またDropもパーティション単位で行えますので、膨大なデータを管理する場合に検討の余地のある方法になります。
パーティショニングのメリットは、前出のように膨大なデータを管理する場合に管理がしやすくなることです。具体的には下記のメリットがあります。
一方で、デメリットとして
総じて、やはり管理ルールが変わりますから、今までとまったく一緒というわけにはいきません。ですから、やはり膨大なデータを扱いたいときに採用を検討すると良いと思います。
制約については公式ページが詳しいです。
https://dev.mysql.com/doc/refman/5.6/ja/partitioning-limitations.html
パーティショニングの作り方は、CREATE TABLE時にやる方法と、後からALTER TABLEでやる方法の二種類があります。
具体的なクエリは後述しますが、例えばlogファイルで行う場合は、月ごとにわけることが一般的で、コツとしては最初から一気に未来日付分まで作ってしまう方がよいです。
例えば2038年くらいまで作っておけば、あとはMySQLがデータインサート時に勝手に振り分けてくれるので、しばらく日付判定なども不要で楽です。
これが最も大切な考え方です。
仮に下記のようなTableがあったとします。
CREATE TABLE ids_log (
uid INT AUTO_INCREMENT,
another_id INT UNIQUE NOT NULL,
insert_time DATETIME NOT NULL
)
another_idがユニークになっています。
このようなTableで、仮にinsert_timeで判定し、各月ごとにパーティションを作ったとします。この状況で問題となる例をあげます。
まず最初に2020年1月にanother_id = 5の人をINSERTしたとします。
その3ヶ月後に、今度はanother_id = 5 の人に重複INSERTがあったとします。
重複と簡単にいいましたが、実はここがパーティショニングのデメリットとなる部分です。結論からいうと、パーティショニングを使う場合「another_idという単一カラムのみで重複を判断することはできません。つまりanother_id = 5を全パーティションをまたいでユニークにはできません。
その理由ですが、そもそもMySQLのパーティショニングとは、各パーティションごとにTable(インデックス付き)が作成されるようなイメージです。そうするとanother_id = 5というデータだけを挿入する場合、どのパーティションに入れてよいかわからないと思います。従って、another_id = 5は、必ず日時(insert_time)とセットで挿入の指示が必要です。
この現象をMySQL側からみると、ユニークなのは「another_idと日時(insert_time)の複合の組み合わせ」ということになります。逆にいえばanother_id=5だけではユニークではありませんし、ユニークにすることができません。従って、パーティショニング時にユニークキーを使う場合は、必ず複合キー、今回でいえば日時(insert_time)と組み合わせないといけないのです。
別の言い方をすると、「パーティションでユニークを使いたいなら、必ず、あるカラムとパーティションで使うカラムとの複合インデックス(複合キー)を作らないといけない。」ということになります。
パーティションを作成する時にエラーが出ることがありますが、その殆どがこの問題です。
念のため、ユニークキーやインデックスなどについてもここで簡単に整理しておきますね。
そもそもMySQLなどのRDBMSではカラムにいろいろな属性などをつけれますが、大雑把に以下にわかれます。
並列ではなく、後者2つが特別なんですよね。
まずユニークは、重複を許さないということです。
ここで重要なのは、重複を許さないということは、MySQLは自動的に索引(インデックス)を作る必要があるということです。
そうでなければ、毎回、全件検索しなくてはいけなりません。
ということで、ユニークキーを作るとは、ユニークを担保するためにキー=インデックスが自動で作成される、という意味です。
プライマリーキーは、ユニークキーの特殊形態です。
Nullを許可しないこと、および各Tableで1つしか作れないこと以外はユニークキーと一緒なので、ユニークキーの一種だと思って問題ないでしょう。
最後にインデックスは、上記でも書きましたが「索引を作る」ことです。
索引を作ると、クエリで意識すれば当然検索が早くなりますし、必要なデータだけとってくるので、メモリの使用量も抑えやすくなります。
ユニークキー(主キー含む)を作れば、自動でインデックスが作成されます。もちろん手動でINDEXを作ることもできます。
詳しくはこのあたりが参考になると思います。
複合キー = 複合インデックス。つまり、二つ以上(複合)のカラムを結合して索引を作ることです。
パーティショニングでは、この複合キーをうまく使う必要があります。
例えば、社員番号と入社日のTableがあったとします。
ここで例えば入社日でパーティションをわけた場合、いつものように社員番号だけにユニーク属性をつけることはできません。
なぜなら、社員番号だけにユニーク属性をつけると、索引が自動で作成されますが、それだけだと、どのパーティションにその社員番号が格納されているかわからなくなるからです。
これを解決するために、社員番号と入社日をあわせて複合キーを作る必要があります。そうすれば総合的なインデックスが作成されるので、MySQLとしても社員番号を指定された時に、どのパーティションに格納されているか、また重複があるかどうか瞬時にわかるからです。
はい。インデックスは関係ないです。
インデックスただの索引ですし、もちろん重複もOK(管理しない)です。ですからパーティションにかかわらず自由につけることができますし、複合にする必要もありません。
そこは勘違いしないようにしましょう。
MySQL 5.6.7 以降は、最大8192 パーティションまで作成できます。
create table table
(
id int auto_increment,
aid varchar(28) not null,
primary key (id, update_date),
hizuke date not null,
unique key (aid, update_date)
)
partition by range COLUMNS(hizuke) (
partition p202001 values less than ('2020-01-01 00:00:00'),
partition p202002 values less than ('2020-02-01 00:00:00'),
);
hizukeで判断するパーティションを後半につけてコミットします。
ユニークが必要な箇所はすべてhizukeと複合キーにします。
前出のようにインデックスはパーティションと無関係なので、Table作成後に自由につけることができます。
alter table table partition by range COLUMNS(hizuke) (
partition p202001 values less than ('2020-01-01 00:00:00'),
partition p202002 values less than ('2020-02-01 00:00:00'),
);
ALTERの場合もCREATEの時とほとんど構文は変わりません。
前出しましたが、ユニークキーはパーティションではとても重要です。
全てのユニークキーは、パーティション全体でユニークになるよう複合キーにしなくてはいけません。
例えば下記のようなTableでinsert_timeを判断してパーティションを作るとします。
CREATE TABLE ids_log (
uid INT AUTO_INCREMENT,
another_id INT UNIQUE NOT NULL,
syain_id INT UNIQUE NOT NULL,
insert_time DATETIME NOT NULL
)
上記では、uid(auto_incre,ent),another_id、syain_idの3つは全てユニークになっています。
この時、必ず下記3つの複合キーを作る必要がある(作らないと、パーティションをまたがったユニークが担保できないから)ということになります。
UNIQUE KEY (uid, insert_time),
UNIQUE KEY (another_id, insert_time),
UNIQUE KEY (syain_id, insert_time)
パーティションへのクエリを速くするには、当然、分かれている単位でクエリを出すのが得策です。
例えば、毎月のパーティションを作ったならば、その一ヶ月で収まるような範囲でクエリを投げれば、速くなることは想像しやすいですよね。
これはパーティションプルーニングと言われています。
https://dev.mysql.com/doc/refman/5.6/ja/partitioning-pruning.html
また、インデックスの仕組みを考えれば、DBにとっては索引で収まる範囲でのクエリを投げてもらうと、いち早く目的のデータを探し出し、オンメモリすることができます。
この時はメモリ使用量も全件検索と比べてはるかに小さくなりますから、サーバー側でSwapが発生する確率も低くなり、パフォーマンスを維持しやすくなります。
そう考えると変にSQLのWHERE句で細かく指定をして全件検索をさせるより、インデックスをうまく使って一部をメモリにとってきて、あとはプログラム側で配列処理した方が速くなることも多いです。
そのような考え方で運用するようにすると、うまく活用できると思います。
以上、パーティショニングについてまとめてみました。
うまく使えば膨大なテーブルの管理がしやすくなるのでおすすめです。
最後に、パーティショニングは公式ページが一番詳しいので、参考URLを貼っておきます。
2020/5/14 11:45にβ版0.3.1.1をアップデートしています。主な変更点は下記です。
その他不具合対応をしています(詳しくはPluginに同梱されているreadme.txtをご覧ください)。ツールとしてはだいぶお使い頂けるようになってきたため、現在のバージョンアップは微調整です。現在我々はそれ以上の新機能や、コアユーザーの方からのご要望反映、また大容量データ向けの実装をしています。詳しくはロードマップや更新予定をご覧ください。
現在、ダウンロードページでは最新版がダウンロードされるようになっています。
既にインストール済みで新しく試したい方は、β版ですので今までのデータは消えてしまいますが、アンインストール後、再インストールすると利用することができます。
サポート対象外にはなりますが、FTPアップデートする方法ですとデータを残すことができる場合があります。詳しくはこちら。