私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ【MySQL】下らねぇ質問はID出して書き込みやがれ 2

みんなの評価 :
レスフィルター : (試験中)
単にユニークなのを保証するだけだし
順番が必要なら別に項目作った方が・・・
Closeじゃなくてトランザクションで挟んでもよさそう。
順番が必要なら別に項目作った方が・・・
Closeじゃなくてトランザクションで挟んでもよさそう。
現在は数千くらいのデータ量なんですが この先、数万→数十万は行きそうなので
ちゃんとインデックスを作っておこうと思いました。
DBにあんま詳しくないもんでよく分からないんですが
例えば特定のフィールドでLIKEで部分一致させるような場合
インデックスの種類はどのようなものが良いんでしょうか?
例えば、対象フィールドに PRIMARY として作っておくだけでも全然効果あるんでしょうか?
初歩的な質問ですみません。
ちゃんとインデックスを作っておこうと思いました。
DBにあんま詳しくないもんでよく分からないんですが
例えば特定のフィールドでLIKEで部分一致させるような場合
インデックスの種類はどのようなものが良いんでしょうか?
例えば、対象フィールドに PRIMARY として作っておくだけでも全然効果あるんでしょうか?
初歩的な質問ですみません。
あぁ…部分一致だとFULLTEXTになるんですか…
しかも色々と面倒そうですね…
やっぱあらかじめ自分で検索用単語データを別途作っておいた方が良いのかなぁ。
しかも色々と面倒そうですね…
やっぱあらかじめ自分で検索用単語データを別途作っておいた方が良いのかなぁ。
う~ん。よくわかんないけど…
何か検索された場合
単語とヒットしたデータの位置を格納したテーブルをまず検索する
そこでヒットしなければ改めて大元のデータ全部を検索する
ヒットしたら前述の単語とヒットしたデータの位置を格納するテーブルに
その情報を追加して行く…
みたいなのが一番効率と労力の軽減のバランスが良い気がするんですが。
FULLTEXTのインデックス化ってどんくらい使えるものなんでしょうか?
何か検索された場合
単語とヒットしたデータの位置を格納したテーブルをまず検索する
そこでヒットしなければ改めて大元のデータ全部を検索する
ヒットしたら前述の単語とヒットしたデータの位置を格納するテーブルに
その情報を追加して行く…
みたいなのが一番効率と労力の軽減のバランスが良い気がするんですが。
FULLTEXTのインデックス化ってどんくらい使えるものなんでしょうか?
いやいやダメだ汗
ヒット数が多すぎるとデータ書き込みのコストがバカにならない…
検索する機会が少ないと問題ない気がするけど
一分に一回とかされたらもうダメ…
ヒット数が多すぎるとデータ書き込みのコストがバカにならない…
検索する機会が少ないと問題ない気がするけど
一分に一回とかされたらもうダメ…
>>853
今のところ、MySQLでは部分検索は前方一致しかINDEXが使えないので注意。
LIKE 'hoge%'の形ね。
LIKE '%hoge'やLIKE '%hoge%'だとINDEXはあっても使えない。
あと、FULLTEXT INDEXは今のところ日本語の検索には向かない。
あれは格納されているデータが半角スペースで単語に区切られている(=英文)と想定して
部分一致検索にINDEXを使える、というもの。
日本語でFULLTEXT INDEXを使える様にするにはmroongaとかがあるよ。
>>855で言っているやり方は転置インデックスと呼ばれるやり方で、
"MySQL 転置インデックス フルテキストインデックス"とかでググるとちらほら情報が出てくる。
がんばって。
今のところ、MySQLでは部分検索は前方一致しかINDEXが使えないので注意。
LIKE 'hoge%'の形ね。
LIKE '%hoge'やLIKE '%hoge%'だとINDEXはあっても使えない。
あと、FULLTEXT INDEXは今のところ日本語の検索には向かない。
あれは格納されているデータが半角スペースで単語に区切られている(=英文)と想定して
部分一致検索にINDEXを使える、というもの。
日本語でFULLTEXT INDEXを使える様にするにはmroongaとかがあるよ。
>>855で言っているやり方は転置インデックスと呼ばれるやり方で、
"MySQL 転置インデックス フルテキストインデックス"とかでググるとちらほら情報が出てくる。
がんばって。
基本的な話しで恐縮ですが
テーブルの件数が多くなってパフォーマンスが落ちた場合
エンジンがInnodbなら、InnodbBufferPoolをでっかくすると思うんだけど
エンジンがMyisamの場合、どこをいじればいいの?
テーブルの件数が多くなってパフォーマンスが落ちた場合
エンジンがInnodbなら、InnodbBufferPoolをでっかくすると思うんだけど
エンジンがMyisamの場合、どこをいじればいいの?
genre_tbl
genre_id nt(5) PK
genre_kind varchar(30)
genre_idの99990,99999は特別な項目として予約
genre_idの99990,99999以外で使用している最大値を返す関数を作ろうとしています
select max(genre_id) from genre_tbl where genre_id not in (99990,99999);
で127が返ってきてるんで、これを
delimiter //
create function
sf_return_max_genre_id()
returns int
begin
return (select max(genre_id) from genre_tbl where genre_id not in (99990,99999) );
end //
delimiter ;
としたんですが、
+--------------------------+
| sf_return_max_genre_id() |
+--------------------------+
| 127 |
| 127 |
~と複数の行が返ってきてます。ストアドファンクションって戻り値は一つだけではないんですか?
genre_id nt(5) PK
genre_kind varchar(30)
genre_idの99990,99999は特別な項目として予約
genre_idの99990,99999以外で使用している最大値を返す関数を作ろうとしています
select max(genre_id) from genre_tbl where genre_id not in (99990,99999);
で127が返ってきてるんで、これを
delimiter //
create function
sf_return_max_genre_id()
returns int
begin
return (select max(genre_id) from genre_tbl where genre_id not in (99990,99999) );
end //
delimiter ;
としたんですが、
+--------------------------+
| sf_return_max_genre_id() |
+--------------------------+
| 127 |
| 127 |
~と複数の行が返ってきてます。ストアドファンクションって戻り値は一つだけではないんですか?
>>871
それ、SELECT sf_return_max_genre_id() FROM genre_tblってやってない?
FROM指定すると、genre_tblの件数と同じだけ結果が返ってくるよ。
SELECT '0'だと1行だけ返ってくるけど、SELECT '0' FROM ..ってやると
テーブルの行数だけ返ってくるのと一緒。
それ、SELECT sf_return_max_genre_id() FROM genre_tblってやってない?
FROM指定すると、genre_tblの件数と同じだけ結果が返ってくるよ。
SELECT '0'だと1行だけ返ってくるけど、SELECT '0' FROM ..ってやると
テーブルの行数だけ返ってくるのと一緒。
適切なインデックスが設定されてるとして
億レベルのレコードがあるテーブルを
複数のテーブルに分ける(例えば1千万レコードずつ)のって検索速度的に意味ある?
億レベルのレコードがあるテーブルを
複数のテーブルに分ける(例えば1千万レコードずつ)のって検索速度的に意味ある?
>>891
横からで申し訳ないが、どのへんに効果があるのだろうか?
テーブルロックの影響範囲?(でも、ロックしたい時困りそう)
index 肥大化軽減?
ログテーブルなどは過去のデータを消しやすいように日付での
レンジパーティショニングしてるどそれ以外に
どういうメリットがあるか知りたいです。
横からで申し訳ないが、どのへんに効果があるのだろうか?
テーブルロックの影響範囲?(でも、ロックしたい時困りそう)
index 肥大化軽減?
ログテーブルなどは過去のデータを消しやすいように日付での
レンジパーティショニングしてるどそれ以外に
どういうメリットがあるか知りたいです。
エンジンにmroongaを使った場合、optimize tableやanalyze tableに対応してないみたいで
mroongaの公式ページにもそのあたりの情報が乗ってないんだけど、やらなくていい仕組みになってるのかな
それとも、専用のメンテコマンドがあるんでしょうか。
mroongaの公式ページにもそのあたりの情報が乗ってないんだけど、やらなくていい仕組みになってるのかな
それとも、専用のメンテコマンドがあるんでしょうか。



類似してるかもしれないスレッド
- 【】 MySQLを買収したSunを買収したOracleを 【】 (112) - [25%] - 2023/1/22 14:15
- 【この先一体】MySQL 総合 Part15【どうなるの】 (1001) - [21%] - 2009/11/22 13:31 ○
トップメニューへ / →のくす牧場書庫について