サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猫
pchin.hatenablog.com
なんか、今更感あるけど認識が甘かったので先輩に教えてもらった。 確認の為に、以下にまとめてみた。 #!/usr/bin/env perl use 5.016; use warnings; use utf8; use autodie; package Oppai { # コンストラクタ newじゃなくても良いけど慣例的にnew # コンストラクタはPerlではクラスメソッドの一種 sub new { my ($class, %opt) = @_; my $self = { name => $opt{name}, size => $opt{size}, }; #第一引数のhashリファレンスに、第二引数のクラス名を紐づけてクラスオブジェクトにして返してる #class名は'Oppai'と書いても良いが、継承された時もクラス名がOppaiになってしまって問題があるので使わない bless $se
ORM使ってて、便利で余裕キメてたらn+1問題を起こしてた。 n+1問題とは 1回目 のselectで、あるテーブルのレコードの集合を取ってきて、更にまた別のテーブルから先ほど取得したレコードデータ使用して n回 selectクエリを発行してしまう現象だ。 うまく説明出来ないので下の具体例書いてみた 解決策(今回の事案の場合) JOIN使ってクエリを一回にまとめる WHERE IN使ってクエリを2回にまとめる のどちらかの対処でクエリ減らす努力をするべきだった。 具体的にどうやってしまったか friendテーブルからplayerのフレンドのレコードの集合を1回引っ張ってきて、そのレコードからまたplayerテーブルへ、フレンドのplayerデータをn回取りに行っている。 sub _get_friends_info { # 自分のフレンド関係データ(player, target)のレコードの
こんにちは!ぴーちんです! cpanm DBD::mysqlしたら、以下のようなエラーが出ました!! DBD::mysql::db do failed: alter routine command denied to user ''@'localhost' ユーザーが指定されてない!と言われてる気がします ソースファイルから手動でmake installしましょう cpanmの--lookオプションを使います 明示的にuserを指定してあげましょう --lookオプション使うとソースをtarball形式で引っ張ってきて展開してくれて、手動でinstallコマンドを打てる的な感じになります。 cpanmのヘルプ見るとDownload the tarball and open the directory with your shellって書いてあります $cpanm --look DBD::m
このページを最初にブックマークしてみませんか?
『pchin.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く