元スレ【この先一体】MySQL 総合 Part15【どうなるの】
mysql覧 / PC版 /みんなの評価 : ○
651 = :
>>648
ありがとう!
654 = :
オレはLEFT JOINを多用しているけど、知人はINNER JOINを多用していると言われた。
INNER JOINのほうが使いやすいのかな・・・
もちろん状況にもよるだろうけど。
656 = :
ほんとにJOINしたことなかったんだw
がんばってください
657 = :
>>654
オレは、LEFT OUTER JOINばっかり。
それだけといっても過言ではない。
INNERとかCROSSとかいろいろあるけど、
使うべきケースがまったくわかんね。orz
658 = :
JOINとかサブクエリーとか覚えると世界が広がるからガンガレ
661 = :
アスタリスクで書いたらそうなるね。
手抜きしないで
select t1.id, t1.hoge, t1.fuga, t2.foo, t2.bar
と必要な列だけ書きましょう。
ちなみにうちの会社では「select *」はコーディング規約で禁止されてます。
662 = :
>>661
それしかないんですか…
全部で50個くらいカラムがあるんだけどそれでも個別に書いてくってことですよね?
大変だなぁ。。
とりあえずそうします、ありがとうございました。
665 = :
>>664
クラス化っていうのはphpとかのプログラム側で関数化するってことですよね?(mysqlの用語ではなくて)
>最初の一発目も、desc テーブル名とかでカラムリストとって
ってなんですか?
クラス内のクエリ文を手作業で、t1.col1,t1.col2,t1.col3,t1.col4,…って書いていく時に、
テーブル構造を出力して見ながらやろうっていう事ですよね?
666 = :
>>665
見ながらやるんじゃなくて、テーブル構造をコピペしてテキストエディタかなんかでマクロを使うか、
sed等で置換するかして機械的な処理で整形してください。
という意味です。がんばってね。ここで手を抜かないことが大事だよ。
667 = :
>>666
あー、なるほど! よくわかりました、ありがとう!
668 = :
あちゃー
オレも面倒なときはつい * を使ってしまうわw
* と 個別にカラムを指定するのって速度的に違いはあるのかな?
感覚的に * のほうが処理速度は速そうだけど・・・。
669 = :
select対象列がすべてインデックスの中に入っていると、
テーブルアクセスをスキップできるのでとても速い。
select *してしまうと実テーブルを読まざるを得ない。
カバーリングインデックスというテクニックです
670 = :
>>669
へえー、そう言う事情があるんですか
今試してみたら両方のやり方で速度の差なかったけど、何十万件になると違いが出るんでしょうか。。
どうもありがとう
671 = :
テーブルがメモリに入りきらなくなるあたりから差が出るよ
672 = :
MySQL 5.1 にて
CREATE TABLE `word_count` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`word` varchar(12) NOT NULL,
`count` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `word` (`word`)
)
と言うテーブルで、
select * from word_count where instr('ここに文章が入ります',word);
を実行すると、key が使われなくて速度が出ません。
もっと効率よくできる書き方はありませんか?
675 = :
全部見るしかないからむりじゃね
676 = :
TRIEとか使えないの?
677 = :
>>676
http://dev.mysql.com/sources/doxygen/mysql-5.1/trie_8c-source.html
これですか? ちょっと調べてみますが、具体的な使い方を教えていただけると助かります。
678 = :
質問です
MySQL5.4の機能であるBKAを使用したのだが
併せてsennaの日本語全文検索機能も使いたいと思っています。
5.4にはsennnaのパッチが当てられないので困っていますが
対応方法ほか良い案などありますでしょうか。
現在はTorittonの5.0,67を使ってますが外部結合が遅い・・・
680 = :
トリガーについて教えてください
MySQL 5.1.35 Windows を使って勉強中なんですけど
table shouhin_master ←マスターテーブル
code int
name varchar(20)
~
delete_flg tinyint
table data_tbl ←データテーブル
code int
data1
~
外部制約でshouhin_masterからcodeを消した時
data_tblの該当するcodeデータを消すようにはしているのですが。
マスターテーブルのdelete_flg に9を立てた時にトリガーを使って
data_tblの該当するcodeのデータを削除する事出来ますか?
出来るとしたら、どういうトリガーを書けば良い?
681 = :
>>679
パフォーマンス試験じゃなければ、そういう構築例は仮想マシンでやればいいから1台あればいいんじゃね?
682 = :
>>680
NewとかOldとか使え
begin
if new.delete_flg = 9 then
delete from data_tbl where code = new.code;
end if;
end
683 = :
>>682
ありがとうです。勉強させて頂きます。
685 = :
?
userTblをJOINしてなきゃ、そりゃエラーになるだろう
686 = 684 :
どこでJOINしたら良いんでしょうか?
3つまでの解説はよく見かけるんですが、4つ以上は見つけられなくて困ってます
687 = 684 :
お礼書き忘れた。
>>685 ありがとうございます
688 = :
どこでも何も、そのまま続けて書けばいい。
FROM ~ JOIN ~ JOIN ~ JOIN ~
解説以前に、まずはマニュアル読むべき。
689 = 684 :
>>688
ありがとうございます
ずっとマニュアルは読んでるんですが、どうも理解できなくて。。
すみません、教えてください お願いします
692 = :
これが新手のマルチ投稿か
693 = :
ランタイム情報の
Slave_runningの値「ON」か「OFF」をmysqlで求めるには、
どのようなクエリを渡せばいいのでしょうか?
694 = :
show status like 'Slave_running';
を、それぞれのプログラミング言語で
select文と同じように実行すれば取れるよ。
696 = :
相談です。
16桁の数字からなる商品番号を格納するカラムのデータ型は何がいいでしょうか?
(1) BIGINT型で、16桁の整数として格納する
(2) CHAR(16)型で、16個の文字からなる文字列として格納する
(1)と(2)と、どちらが検索が速いでしょうか?
データ件数は、10万~100万件程度です。
アドバイスよろしくお願いします。
697 = :
>>696
64bitならもちろん、32bitでも、bigint のほうが早いはずだぜ。
まぁ、やってみたら?
698 = :
>>697
アドバイス、ありがとうございます。
16桁の商品番号の格納は、BIGINT型で行ってみます!(・∀・)
一応ベンチマークも測ってみようと思って、今100万個のテストデータを作成中ですが、
MySQL5のストアドプロシージャとかで、乱数を一気に100万個ぐらい作る方法ありますかね?
=とりあえずPHPスクリプトで、5000個ずつINSERTしてます><
700 = :
すまん、
書き込んだ直前以降はちゃんと同じ値になってました。
なんか構文間違ってたんだと思います。
みんなの評価 : ○
類似してるかもしれないスレッド
- 【MySQL】下らねぇ質問はID出して書き込みやがれ 2 (985) - [21%] - 2012/10/17 7:16
- 【】 MySQLを買収したSunを買収したOracleを 【】 (112) - [19%] - 2023/1/22 14:15
トップメニューへ / →のくす牧場書庫について