個人用ツール

「ver4/データベースチューニング」の版間の差分

提供: baserCMS公式ガイド

移動: 案内, 検索
(ページの作成:「[このコンテンツは内容調整中です] データベースチューニングについて。 ## インデックス [http://flagsystem.co.jp/news/archives/32 参...」)
 
 
行8: 行8:
  
 
### PostgreSQL
 
### PostgreSQL
CREATE INDEX blog_category_id_idx ON mysite_pg_blog_posts(blog_category_id) ; <br />
+
CREATE INDEX blog_category_id_idx ON mysite_blog_posts(blog_category_id) ; <br />
CREATE INDEX blog_content_id_idx ON mysite_pg_blog_posts(blog_content_id) ;<br />
+
CREATE INDEX blog_content_id_idx ON mysite_blog_posts(blog_content_id) ;<br />
CREATE INDEX user_id_idx ON mysite_pg_blog_posts(user_id) ;<br />
+
CREATE INDEX user_id_idx ON mysite_blog_posts(user_id) ;<br />
CREATE INDEX mysite_pg_blog_posts_no_idx ON mysite_pg_blog_posts(no) ;<br />
+
CREATE INDEX blog_posts_no_idx ON mysite_blog_posts(no) ;<br />
 
   
 
   
  
  それからブログとタグをひもづけてるmysite_pg_blog_posts_blog_tags 。<br />
+
  それからブログとタグをひもづけてるmysite_blog_posts_blog_tags 。<br />
 
タグを使う場合こいつは臭い。この辺、INDEX貼ればかなり変わりそう。<br />
 
タグを使う場合こいつは臭い。この辺、INDEX貼ればかなり変わりそう。<br />
 
   
 
   
CREATE INDEX blog_post_id_idx ON mysite_pg_blog_posts_blog_tags(blog_post_id) ;<br />
+
CREATE INDEX blog_post_id_idx ON mysite_blog_posts_blog_tags(blog_post_id) ;<br />
CREATE INDEX blog_tag_id ON mysite_pg_blog_posts_blog_tags(blog_tag_id) ;<br />
+
CREATE INDEX blog_tag_id ON mysite_blog_posts_blog_tags(blog_tag_id) ;<br />
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
あとはコメントのテーブル。mysite_pg_blog_comments <br />
+
あとはコメントのテーブル。mysite_blog_comments <br />
 
もしサイトが炎上してコメント1000も2000も行った場合はここも負荷になるのでINDEX貼っときましょう。<br />
 
もしサイトが炎上してコメント1000も2000も行った場合はここも負荷になるのでINDEX貼っときましょう。<br />
 
   
 
   
CREATE INDEX blog_comments_content_id_idx ON mysite_pg_blog_comments(blog_content_id) ;<br />
+
CREATE INDEX blog_comments_content_id_idx ON mysite_blog_comments(blog_content_id) ;<br />
CREATE INDEX blog_comments_post_id_idx ON mysite_pg_blog_comments(blog_post_id) ;<br />
+
CREATE INDEX blog_comments_post_id_idx ON mysite_blog_comments(blog_post_id) ;<br />
CREATE INDEX blog_comments_no_idx ON mysite_pg_blog_comments(no) ;<br />
+
CREATE INDEX blog_comments_no_idx ON mysite_blog_comments(no) ;<br />
  
  
 
### MySQL
 
### MySQL
  
ALTER TABLE mysite_pg_blog_posts ADD INDEX blog_category_id_idx(blog_category_id) ;<br />
+
ALTER TABLE mysite_blog_posts ADD INDEX blog_category_id_idx(blog_category_id) ;<br />
ALTER TABLE mysite_pg_blog_posts ADD INDEX blog_content_id_idx(blog_content_id) ;<br />
+
ALTER TABLE mysite_blog_posts ADD INDEX blog_content_id_idx(blog_content_id) ;<br />
ALTER TABLE mysite_pg_blog_posts ADD INDEX user_id_idx(user_id) ;<br />
+
ALTER TABLE mysite_blog_posts ADD INDEX user_id_idx(user_id) ;<br />
ALTER TABLE mysite_pg_blog_posts ADD INDEX mysite_pg_blog_posts_no_idx(no) ;<br />
+
ALTER TABLE mysite_blog_posts ADD INDEX blog_posts_no_idx(no) ;<br />
  
ALTER TABLE mysite_pg_blog_posts_blog_tags ADD INDEX blog_post_id_idx(blog_post_id) ;<br />
+
ALTER TABLE mysite_blog_posts_blog_tags ADD INDEX blog_post_id_idx(blog_post_id) ;<br />
ALTER TABLE mysite_pg_blog_posts_blog_tags ADD INDEX blog_tag_id(blog_tag_id) ;<br />
+
ALTER TABLE mysite_blog_posts_blog_tags ADD INDEX blog_tag_id(blog_tag_id) ;<br />
  
ALTER TABLE mysite_pg_blog_comments ADD INDEX blog_comments_content_id_idx(blog_content_id) ;<br />
+
ALTER TABLE mysite_blog_comments ADD INDEX blog_comments_content_id_idx(blog_content_id) ;<br />
ALTER TABLE mysite_pg_blog_comments ADD INDEX blog_comments_post_id_idx(blog_post_id) ;<br />
+
ALTER TABLE mysite_blog_comments ADD INDEX blog_comments_post_id_idx(blog_post_id) ;<br />
ALTER TABLE mysite_pg_blog_comments ADD INDEX blog_comments_no_idx(no) ;<br />
+
ALTER TABLE mysite_blog_comments ADD INDEX blog_comments_no_idx(no) ;<br />

2017年8月8日 (火) 19:23時点における最新版

[このコンテンツは内容調整中です]

データベースチューニングについて。

インデックス

参考
table prefixは適宜読み替える事

PostgreSQL

CREATE INDEX blog_category_id_idx ON mysite_blog_posts(blog_category_id) ;
CREATE INDEX blog_content_id_idx ON mysite_blog_posts(blog_content_id) ;
CREATE INDEX user_id_idx ON mysite_blog_posts(user_id) ;
CREATE INDEX blog_posts_no_idx ON mysite_blog_posts(no) ;

それからブログとタグをひもづけてるmysite_blog_posts_blog_tags 。
タグを使う場合こいつは臭い。この辺、INDEX貼ればかなり変わりそう。

CREATE INDEX blog_post_id_idx ON mysite_blog_posts_blog_tags(blog_post_id) ;
CREATE INDEX blog_tag_id ON mysite_blog_posts_blog_tags(blog_tag_id) ;

あとはコメントのテーブル。mysite_blog_comments 
もしサイトが炎上してコメント1000も2000も行った場合はここも負荷になるのでINDEX貼っときましょう。

CREATE INDEX blog_comments_content_id_idx ON mysite_blog_comments(blog_content_id) ;
CREATE INDEX blog_comments_post_id_idx ON mysite_blog_comments(blog_post_id) ;
CREATE INDEX blog_comments_no_idx ON mysite_blog_comments(no) ;

MySQL

ALTER TABLE mysite_blog_posts ADD INDEX blog_category_id_idx(blog_category_id) ;
ALTER TABLE mysite_blog_posts ADD INDEX blog_content_id_idx(blog_content_id) ;
ALTER TABLE mysite_blog_posts ADD INDEX user_id_idx(user_id) ;
ALTER TABLE mysite_blog_posts ADD INDEX blog_posts_no_idx(no) ;

ALTER TABLE mysite_blog_posts_blog_tags ADD INDEX blog_post_id_idx(blog_post_id) ;
ALTER TABLE mysite_blog_posts_blog_tags ADD INDEX blog_tag_id(blog_tag_id) ;

ALTER TABLE mysite_blog_comments ADD INDEX blog_comments_content_id_idx(blog_content_id) ;
ALTER TABLE mysite_blog_comments ADD INDEX blog_comments_post_id_idx(blog_post_id) ;
ALTER TABLE mysite_blog_comments ADD INDEX blog_comments_no_idx(no) ;