MySQL
ID採番方法 ✗ auto_increment idが重複する問題があり ◯ sequence tableの作成 ◯ UUIDカラムの追加 ◯ ULID(時系列な並びのID) ◯ UUIDv6, UUIDv7, UUIDv8も時系列順にソート可能 Seaquence データが大規模になると、シーケンス発行がボトルネックなりすい UUI…
現場でギャップロックという聞き慣れない用語を耳にしたので、 以下の記事を参考に理解する。 MySQLのギャップロックとネクストキーロック - 41から始めました MySQLロック ロックの種類 排他ロック DML実行時にトランザクションで最初に取得されるロック ロ…
MySQLにおける実行計画の見方について記載します。 EXPLAIN 結果確認 クエリコストをみたい場合 format=jsonをつけてexplainを実行する。 explain format=json 【クエリ】 結果Json query_costの箇所にコストが表示される { "query_block": { "select_id": 1…
Supser権限を付与 テーブル定義+データインポートの際に、Super権限が必要との事だったので、付与 Super権限が付与されていないことを確認 SELECT host, user, Super_priv FROM mysql.user WHERE user='hoge'; +-----------+---------------+------------+ |…
公式の下記ページをGoogle翻訳した手順を貼っておく。 MyBatis各種ファイル自動設定 http://www.mybatis.org/generator/index.html MyBatis各種ファイル自動生成する 以下、翻訳したものを引用 ①eclipseマーケットプレイスで、プラグイン「MyBatis Generator…
この程度のものなら、さっと自分で書いてもよいのかもしれないけど。 時間がないときにさっと作れるように残しておく。 データベースを作成していない場合は、以下の記事を参考にしてみてください。 http://tamata78.hatenablog.com/entry/2019/05/26/111113…
ローカルのMySQLで、SQL実行環境を作る際の一連の流れを以下に記載します。 前提条件 OS: macOS 10 SQLは、ターミナル上のコマンドラインで実行 MySQLのインストールが済んでいない方は以下を参考にしてみて下さい。 HomebrewでMySQLをインストールする Wind…
Javaで作られたシステムでドキュメントがない場合、システム理解を効率的に進めるためには、 DB設計書、ER図、クラス図の自動生成して、インプット情報とするのが良いです。 WindowsでEclipseを使って開発する環境をイメージしています。 自動生成ツールの導…
Indexの作成 -- 通常インデックス create index idx_name on table_name (name); -- 複合インデックス create index idx_group_id_name on table_name (group_id, name); Indexの参照 作成したIndexを確認する show index from table_name; Indexの削除 誤っ…
PostgreSQL CREATE TABLEやALTER TABLEなどのDDL命令も COMMIT、ROLLBACKの対象になる 第1回 トランザクションについて Oracle DDLはトランザクション対象にはならない。暗黙コミットされる。 oralce 以下引用 PostgreSQL では、CREATE TABLE や DROP TABLE …
Oracle TO_DATE(TO_CHAR(SYSDATE), 'YY-MM-DD') MySQL DATE_FORMAT( SYSDATE() , '%Y-%m-%d') Postgres TO_DATE('20060830', 'YYYYMMDD')
MySQLをインストール $ brew update $ brew install mysql mysqlがインストールされたかを確認 $ mysql --version mysql Ver 14.14 Distrib 5.7.10, for osx10.11 (x86_64) using EditLine wrapper mysqlを起動 $ mysql.server start [14:23:02] Starting My…
MySQLでtoo many connectionsエラーが発生した経緯もあり、MySQLのコネクション接続数とスレッド数を参照するコマンドを調査しました。以下に記載します。 現在の接続数 以下は累計のため、現在値を把握するためには前回値との差分を取る mysql> show global…
インデックスを張るテーブル CREATE TABLE tbl_Address( UserID INT NOT NULL PRIMARY KEY, Zip CHAR(8) DEFAULT NULL, Ken CHAR(5) DEFAULT NULL, Addr VARCHAR(200) DEFAULT NULL, INDEX idx_zip(Zip) ); インデックス関連SQL -- index作成(Zipフィールド…
順次追記していきます。 カラム名変更 ALTER TABLE スキーマ名.テーブル名 CHANGE 旧項目名 新項目名 型 NOT NULL制約 COMMENT 'コメント'; 項目桁数変更 型(X):Xに桁数を設定 ALTER TABLE スキーマ名.テーブル名 MODIFY 項目名 型(X) NOT NULL制約 COMMENT…
SERIAL データ型とは INTEGER で NOT NULL かつ UNIQUE であるカラムで MySQL 固有の機能である AUTO_INCREMENT(自動採番)が指定されている。 テーブル定義例 CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, path VARCHAR(1000), bug_id BIGINT UN…
■mysqlインストール sudo yum -y install mysql mysql-devel mysql-server mysql-utilities■外部ホストのmysqlへログイン mysql -u user_name -D dbname -p -h host_name -P port_num -A
■DB登録テーブル一覧表示 SHOW TABLES FROM database;■指定ユーザーの権限一覧表示 SHOW GRANTS FOR user;■大文字、小文字区別設定の確認 show variables where variable_name='lower_case_table_names'; lower_case_table_names = 00...大文字小文字を区別…
MySQLで文字化けを防ぐには以下の設定を統一しておく・Database の文字コード ・テーブルの文字コード ・カラムの文字コード ・クライアントの文字コード <DBの文字コード確認> show variables like "chara%"; Variable_name Value character_set_client u…