仕事と晩飯とその他

日記です。

本筋ではないところで少しずつ

社内用のDB、MySQLPHPでクロス集計。諸々試してたどり着いたのが、値を二次元配列にしてしまうという方法。PHPで多元配列のソートが出来る関数 array_multisort を使うとカラム毎の並べ替えもできる。出来上がった配列をfputcsvでcsv書き出しも簡単。しかもfputだから速い。

大昔に勉強したルーチンとかサブルーチンとか、そういうのを思い出しつつ、最近学んだCの云々も考えながら進めていたら、なんだか色々すっきりしてきた。

とは言うものの、今のところは本当に汚いプログラムでうんざりする。こうすれば整理できるんだろうなとは思うが、簡単にそうできるわけでもない。あと、メモリとかサーバーの負荷とか、そういうことも考えたいが、考えたところですぐに改善できるわけでもない。

ああだこうだやってるうちに、自社サイトの古いところを発見。ひどい、ひどすぎる。昔のオレを恨む。しょうがないので作り直し。とりあえず動くようにした。スマホ対応とかもうちょっとしたらやろう。

頭が整理されてきたおかげだろうか、SQLも見直しを始めた。複数のSQL文をサブクエリーやSQLの関数を使ってひとつにまとめたり。今までは書き直しても処理時間とかさほど気にしていなかったが、とりあえず簡単に時間だけはチェック。3つの処理をひとつにまとめたと本人的には大満足だったSQLの処理時間はほぼ変わらず。どちらもあっという間。なんだか非常に残念な気分ではある。どうやらWebページの表示はHTMLのほうが問題のようだ。

久しぶりにページの表示速度なども調べてみる。うーん、やっぱり画像だなあ。どうしたもんか。

それにしてもSQL文、奥が深いというか、すごい。PHPでガチャガチャやるのは自分的には分かりやすくていいのだが、SQLでの処理もうまくいくと非常に気持ちがいい。どういうのだと速いのかとかそのあたりよくわかっていない。今度はそのあたりも意識してみよう。