問題タブ [fetchall]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP: fetchall() を使用してテーブル データを表示する
PHP/MySQL に関する簡単な質問:
MySQL データベース テーブルのデータを HTML テーブルとして表示しようとしていますが、何らかの理由でコードが各データの出力を 2 倍にしています。
これは私のコードです:
私の結果は次のようになります。
ユーザーID | ユーザー名 | 名 | 苗字
1 1 ユーザー名 ユーザー名 名 名 姓 姓
などなど。あなたはアイデアを得る。なぜこれが起こっているのですか?ちなみに、row[] 添字 0 ~ 3 を参照して手動で列情報を追加すると、すべてが正しく表示されます。データが複製されるのは、ネストされた foreach ステートメントを使用する場合のみです。
zend-db - Zend_Db fetchAll() は値を key => value としてではなく、キーとして返します
Zend_Db fetchall() メソッドのデフォルト機能を変更して、これを返さないようにする方法はありますか?
でもこれは:
performance - sqlite.fetchall() がとても遅いのは普通ですか?
2 つの内部結合テーブルから選択する SQL クエリがあります。select ステートメントの実行には約 50 秒かかります。ただし、fetchall() には 788 秒かかり、981 件の結果しか取得できません。これは、クエリと fetchall のコードです。
fetchall に時間がかかる理由はありますか?
アップデート
やっている:
と同じくらい遅くなります
performance - sqlite クエリを実行した後、結果のフェッチを高速化するにはどうすればよいですか?
私の質問に対する答えとして: sqlite.fetchall() がとても遅いのは普通ですか? sqlite では、fetch-all と fetch-one が非常に遅くなる可能性があるようです。
そこで述べたように、次のクエリがあります。
select ステートメントの実行には約 50 秒かかります (許容範囲)。ただし、fetchall() には 788 秒かかり、981 件の結果しか取得できません。
私の質問への答えとして与えられたクエリを高速化するために提案された方法: sqlite.fetchall() がとても遅いのは普通ですか? fetchmany() を使用しても、結果の取得速度は向上しませんでした。
sqlite クエリを実行した後、結果のフェッチを高速化するにはどうすればよいですか?
コマンドラインで実行しようとしたのとまったく同じSQL:
アップデート:
そのため、約 45 分前にコマンドラインでクエリの実行を開始しましたが、まだビジーであるため、コマンドラインを使用すると非常に遅くなります。
zend-framework - Zend Framework-行が返されない場合、fetchAllは致命的なエラーを返しますか?
top useを試しfetchAll
て致命的なエラーが返される場合、その理由はクエリでレコードが返されないためです。しかし、私の質問は、それをどのように扱うかです。クエリがレコードを返さないので、使用しないかどうかを確認するにはどうすればよいtoArray()
ですか?
例えば、
toArray
メソッドを配置する前に、クエリの検証を行うにはどうすればよいですか?
python - Python sqlite fetchmany と fetchall は順序付けられた結果を返します
Python sqlite fetchall() および fetchmany() ステートメントが、元のキーの順序ではなく、ソートされたキーの順序で結果を返すことに気付きました。たとえば、次のことを考慮してください。
行の返される順序は、ソートされたキーの順序 [2、3、5、7、8、9] です。
何か見逃したことがありますか、それともこれがデフォルトの動作ですか? もしそうなら、引数のインデックスで行を再ソートするという明らかな回避策とは別の回避策はありますか?
python - 2 倍の結果しかフェッチしないのに、同じ SQLite クエリが 30 倍遅くなるのはなぜですか?
私は約 1 週間使用しているクエリの高速化に取り組んでおり、ここでいくつかの質問をしました ( sqlite クエリを実行した後に結果のフェッチを高速化するにはどうすればよいですか?、sqlite.fetchall() は正常ですか?はとても遅いですか?、効率的な方法で min() と max() を使用する方法は? )。
そこに与えられた回答からの非常に便利な助けを借りて、私は100.95
数秒かかるsqliteクエリとfetchallかかる時間まで時間を短縮することができました: 1485.43
. これでもまだ十分ではなかったので、いくつかの異なるインデックスを試した後0.08
、1 つのサンプルのクエリ時間を数秒に短縮し、fetchall 時間を54.97
数秒に短縮することができました。それで、ようやく物事を十分にスピードアップできたと思いました。
次に、次のサンプルのクエリが実行され、0.58
数秒かかり、fetchall に3952.80
数秒かかります。3 番目のサンプルでは、クエリに1.01
数秒かかり1970.67
、fetchall に数秒かかりました。
最初のサンプルでは 12951 行、2 番目のサンプルでは 24972 行、3 番目のサンプルでは 6470 行がフェッチされました。2 番目の例の約半分の量しか取得できなかったのに、最初のサンプルのほうが行のフェッチがはるかに高速だったのはなぜなのか、非常に興味があります。
コード (spectrumFeature_inputValues
は、使用した 3 つのサンプルの (1,)、(2,)、および (3,) です。):
そして結果:
SQLite create ステートメント:
ご覧のとおり、スペクトルと機能の両方でmz
とのrt
値からインデックスを作成しました。これは、これらの数値を比較するのにほとんどの時間が費やされると考えたためです。
では、なぜ最初のサンプルは 2 番目と 3 番目のサンプルよりもはるかに高速なのでしょうか? また、クエリ時間は fetchall 時間とどのように関連していますか? 最も重要なのは、これを高速化する方法はありますか?
更新 1:
同僚と話した後、おそらく点を 2 次元 (rtMin、rtMax、mzMin、mzMax) と比較するのに n^2 の時間がかかるためです。これは、2 番目の fetchall に 60^2 秒 (最初の fetchall にかかったおおよその時間) を少し超える時間がかかり、2 倍弱の行量を取得したことにほぼ対応しています。しかし、これは私の質問には答えません。
更新 2:
コメントでアドバイスされているように、R*tree を使用してみました。新しいテーブルを作成しました:
クエリを次のように変更します。
これにより、次の結果が得られました。
以前の方法よりも少し速くなりましたが、まだ十分ではありません。次に、web_bod のソリューションを試します。
アップデート 3
web_bod のソリューションを使用すると、次のような結果が得られました。
3 つ目は残念ながら再起動のため終了しませんでした。したがって、これは私の最初のソリューションよりも少し高速ですが、R*Tree を使用するよりは遅くなります
更新 4
信じられないほど遅くなる別のクエリに取り組んでいると、途切れることなくスリープ状態になることがわかりました(この質問を参照してください)。このクエリの実行中に top を確認したところ、R と D の状態が切り替わり、CPU 使用率が 100% から 50% に低下しました。これが、提供されているすべてのソリューションで実行が非常に遅い理由である可能性があります。
更新 5
MySQL に移行しましたが、同じ結果が得られます。
mysql - Python と MySQL でこのルックアップをよりエレガントに行うには?
mydataテーブルの name (integer(10))と city (integer(10))のID であるnameid_cityid.txt、 nameid および cityidという名前のディレクトリに多数のファイルがあります。
次の解決策は機能しますが、fetchall は「L」をフェッチし、nameid、cityid のファイル名タプルは文字列であるため、型変換を行っています。
同じことを行うためのpythonicまたはよりエレガントな方法を提案できれば、それは私とコミュニティにとって素晴らしいことです!
私が達成しようとしていること: データベースにレコードがないディレクトリからそれらのファイルを見つけて、そのファイルを解析/移動/削除するなどの操作を行います。
MySQL テーブル mydata :
パイソン:
php - Eclipse での php FETCH_CLASS とオートコンプリート
PHPとPDOは初めてです。私はEclipse PDTを使用しています。
その後、次のように入力できるようにしたい:
そこから ctrl+space を押すと、Eclipse はそのクラス Articolo のすべてのメンバーと関数を含むオートコンプリートをポップアップするはずです。
しかし、IDE が $result のクラスを認識していないかのように、何も起こりません。私は何か間違ったことをしていますか?(Articolo) への $result のキャストが必要なのでしょうか?
やっている:
オートコンプリート ポップアップが正しく表示されます。
zend-framework - 3 つの関数を追加する場所と findByUsername の記述方法 - Zend Framework
Zend ドキュメントで説明されているように、User.php モデル、DbTable/User.php モデル、および UserMapper.php ファイルがあります。
マッパーには、fetchAll()、find($id)、getDbTable()、save()、および setDbTable() があります。
次の機能を追加したい場合:
- function doesUsernameExistAlready($username) {ブール値を返す}
- function findByUsername($username) {$user を返す}
- function activateUser($user) {$user をアクティブにするだけ}
Zend のベスト プラクティスに従うには、3 つの関数をどこに追加する必要がありますか? UserMapper.php または User.php に追加する必要がありますか? それともコントローラー(UserController)に属していますか?
findByUsername の場合、User テーブルでユーザー名を検索する関数を作成するにはどうすればよいですか? 私の場合、ユーザー名は電子メールアドレスであり、一意です (MySQL で定義されています)。