MySQLに関するIzumiSyのブックマーク (7)

  • レプリケーションとシャーディング、MySQLでレプリケーションの張り方 - 猫でもわかるWeb開発・プログラミング

    この記事は、 MySQL Casual Advent Calendar 2017 4日目の記事です。 1日前の記事はこちら→MySQL 8.0でカジュアルにウインドウ関数(rank, dense_rank) | キムラデービーブログ 僕の記事は、超初心者向けに、レプリケーションとシャーディングについての説明と、MySQLでのレプリケーションの張り方を解説します。 レプリケーションとシャーディングの違い レプリケーション シャーディング サーバーの台数を増やしづらい 結局両方のDBサーバーにクエリを投げなければいけない時がある 実際にレプリケーションを張ってみる GTIDではないレプリケーション レプリケーション用ユーザーを作成する masterのバイナリログのファイルとポジションを確認する slaveとmasterの間でレプリケーションを張る 試しにレプリケーションされているか確認してみる

    レプリケーションとシャーディング、MySQLでレプリケーションの張り方 - 猫でもわかるWeb開発・プログラミング
  • MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記

    MySQLでテーブルへのカラム追加、インデックス追加やテーブルの再編成などを行うと、その間テーブルに共有ロックがかかってしまいます。そのためこれらのメンテナンス処理は、通常利用者の少ない深夜早朝帯にサービスを止めて実施する必要があります。日はそれを無停止、オンラインのままでできないかという話題です。 基的なアイデア メンテナンス対象の元テーブルをコピーして、作業用の仮テーブルを作ります 仮テーブルに対して、カラム追加などの変更を加えます その間、元テーブルに対して行われる更新処理について差分を記録しておきます 仮テーブルの変更が終わったら、記録しておいた差分データを仮テーブルに反映します 差分データの反映が終わったら、元テーブルと仮テーブルを入れ替えます これと似たようなことを考えた方は結構いらっしゃるのではないでしょうか。ただ、言うは易し、行うは難しです。整合性がきちんと取れるかどう

    MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記
  • MySQLでINSERTのデッドロックに嵌る人を1人でも減らすために - ichirin2501's diary

    この記事ははてなデベロッパーアドベントカレンダー2015の12月24日の記事です。 昨日は id:stefafafan さんのエンジニア英語でした。 こんにちは、こんばんは。 クリスマス・イヴですね、皆さんはどのような一日を過ごされる(た)のでしょうか。 僕は一人です。 改めまして、先日初めての合コンを経験/失敗して二度と行かないと誓った はてなの id:ichirin2501 です。今回は小ネタとしてMySQL(InnoDB)のBULK INSERTにおけるデッドロックの話をしようと思います。ただ、外部キー制約が絡むと複雑になるので今回は触れません。それについてはこちらを参照ください。 あ、タイトルはオマージュです*1。 Topic 検証環境 INSERTのデッドロック 避けられないケース もしくはロックする リトライ処理に注意 初期データ Duplicateの場合 Deadlockの

    MySQLでINSERTのデッドロックに嵌る人を1人でも減らすために - ichirin2501's diary
  • SQLZoo

    Tutorials: Learn SQL step by step 0 SELECT basics Some simple queries to get you started 1 SELECT name Some pattern matching queries 2 SELECT from World In which we query the World country profile table. 3 SELECT from Nobel Additional practice of the basic features using a table of Nobel Prize winners. 4 SELECT within SELECT In which we form queries using other queries. 5 SUM and COUNT In which we

    IzumiSy
    IzumiSy 2018/04/16
    SQLの勉強
  • SQLECTRON - MySQL/PostgreSQLに対応したターミナル用データベースクライアント MOONGIFT

    WebであればphpMyAdminやphpPgAdminといったデータベース管理が使われることが多いですが、ターミナルの場合はどうでしょう。それぞれ別なクライアントソフトウェアを使って、独自のコマンドも覚えないといけません。 そこで使ってみたいのがSQLECTRONです。MySQL/PostgreSQLに対応したシンプルなSQLクライアントです。 SQLECTRONの使い方 起動しました。最初は何もありませんのでサーバ設定を追加します。 サーバ設定 GUI風にデータベース情報を追加できます。 データベース設定 接続しました。テーブル一覧が表示されています。 テーブル一覧 テーブルを選択するとデータが表示されます。 データ一覧 データベースの切り替えもできます。 データベース一覧 SQLECTRONはSQLを実行して、その結果を表示するという仕組みになっています。データの一覧を表示した後は手

    SQLECTRON - MySQL/PostgreSQLに対応したターミナル用データベースクライアント MOONGIFT
  • RDBとNoSQLにみるDB近現代史 データベースに破壊的イノベーションは二度起きるか? - エンジニアHub|若手Webエンジニアのキャリアを考える!

    「ユーザー目線」のシステムを目指して RDBが従来の階層型DBに比べて優れていた点はいくつか挙げることができますが、シェアを伸ばすうえで最も大きな影響は、ユーザーが使いやすいデータ構造とインタフェースにこだわったことです。すなわち、「テーブル」と「SQL」の発明です。 RDBでは、すべてのデータを「テーブル」というただ一つのデータ形式によって表現します。テーブルは、見た目が「二次元表」に似ているため*3、Microsoft ExcelGoogle ドキュメントなどのスプレッドシートを使い慣れた人が見ると、データを格納する方法が直観的にイメージしやすいという利点があります。実際、こうした二次元表によるデータ管理は、Excelなどのソフトウェアが登場する前から一般的な方法だったため、RDBが登場した当時の人々にとっても受け入れやすいものでした。 テーブルが画期的だった点は、もう一つあります。

    RDBとNoSQLにみるDB近現代史 データベースに破壊的イノベーションは二度起きるか? - エンジニアHub|若手Webエンジニアのキャリアを考える!
  • MySQLでORDER BYの項目にインデックスを適用してみる - yk5656 diary (旧)

    MySQLで大量のデータを追加してみる の続き MySQLでORDER BYの項目にインデックスを適用してみる 今回使用するテーブル サンプルのテーブルに、レコードが1000万件入った状態。 pointには1〜100、 typeには1〜10、flagには0,1が入っている。 mysql> show create table sample; +--------+---------------------------------------------------+ | Table | Create Table | +--------+---------------------------------------------------+ | sample | CREATE TABLE `sample` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name

    MySQLでORDER BYの項目にインデックスを適用してみる - yk5656 diary (旧)
    IzumiSy
    IzumiSy 2017/11/12
    OrderByで使われるカラムにもインデックスを適用する
  • 1