BigQuery परिचय
Matt Forrest
Field CTO
तीन मुख्य ऑप्टिमाइज़ेशन नियम हैं:
SELECT * से बचें, और सिर्फ़ ज़रूरी कॉलम ही चुनेंWHERE क्लॉज़ से डेटा को जल्दी और बार-बार फ़िल्टर करेंINT64 डेटा टाइप पर करें।WITH filter_my_data AS (SELECT
-- Filter data with
-- WHERE in the CTE first
)
SELECT
-- This query will run
-- faster with less data
JOIN a USING (user_id)
BigQuery में, {{1}} का उपयोग करें
BOOLINTFLOATDATE WHERE के साथ STRING या BYTE डेटा टाइप उत्तम नहीं हैं।
उत्तम नहीं
SELECT user_id, date_ordered
FROM dataset.table
WHERE product = 'shoes'
उत्तम
SELECT user_id, date_ordered
FROM dataset.table
WHERE product_id = 1234
ORDER BY हमेशा क्वेरी के सबसे बाहर (अंत) में होना चाहिएORDER BY का प्रयोगउत्तम नहीं
WITH order_total AS (SELECT
user_id,
sum(product_price) as order_sum
FROM orders
GROUP BY user_id
-- Order by is not at the end of the query
ORDER BY last_purchase_date
)
SELECT order_total.order_sum,
users.user_name
FROM dataset.users users
JOIN order_total USING (user_id);
उत्तम
WITH order_total AS (SELECT
user_id,
last_purchase_date
sum(product_price) as order_sum
GROUP BY user_id
)
SELECT order_total.order_sum,
users.user_name
FROM dataset.users users
JOIN a USING (user_id)
-- Order by should always be at the end
ORDER BY orders_total.last_purchase_date;
EXISTS का उपयोग करेंCOUNT से बचेंSELECT EXISTS (
-- Write the main query as a subquery within the exists call
SELECT
user_id
FROM
dataset.table
WHERE
product_category = 'home_goods'
AND status = 'Closed Account'
);
APPROX_TOP_SUM या APPROX_COUNT_DISTINCT जैसे approximate aggregate functions का उपयोग करें.WHERE क्लॉज़ में डेट शामिल करें.BigQuery परिचय