2

私は Depot チュートリアルを使用していますが、合計価格を定義するときに問題が発生しています: これは私が得ているエラーです: 誰かがそれの何が問題なのか知っていますか? ありがとうございました。

NoMethodError in Carts#show

Showing C:/pan/app/views/carts/show.html.erb where line #7 raised:

private method `total_price' called for #<LineItem:0x3ed2640>
Extracted source (around line #7):

4: <tr>
5: <td><%= item.quantity %>&times;</td>
6: <td><%= item.product.brand %></td>
7: <td class="item_price" ><%= number_to_currency(item.total_price) %></td>
8: </tr>
9: <% end %>
10: <tr class="total_line" >

多数の行 (3 億以上) を持つテーブルで count(*) を使用したクエリのパフォーマンス

sqlite の使用には制限があることは理解していますが、このシナリオを処理できるかどうかを知りたいです。

私のテーブルには 3 億件以上のレコードがあり、データベースは約 12 ギガです。sqlite を使用したデータ インポート ユーティリティは、素晴らしく高速です。しかし、その後、このテーブルの文字列列にインデックスを追加し、この操作を完了するために一晩中実行しました。これを他のデータベースと比較したことはありませんが、かなり遅いように思えました。

インデックスが追加されたので、データ内の重複を探したいと思っています。そのため、「having count > 0」クエリを実行しようとしていますが、数時間もかかっているようです。私のクエリは次のようになります。

select col1, count(*) 
from table1
group by col1
having count(*) > 1

このクエリは col1 のインデックスを使用すると思いますが、クエリの実行が遅いため、そうではないのではないかと思います。

おそらくSQLサーバーはこの種のことをよりうまく処理できますか?

4

1 に答える 1

6

このメソッドの定義がprivateLineItem クラスのキーワードの下にないことを確認してください。それ以外の場合はプライベートと見なされ、クラス外で呼び出すことはできません。

于 2012-01-18T16:10:23.917 に答える