বৃহত ডাটাবেস ক্যোয়ারী অনুকূলকরণ (25+ মিলিয়ন সারি, সর্বাধিক () এবং GROUP BY ব্যবহার করে)


14

আমি পোস্টগ্রিস 9.3.5 ব্যবহার করছি এবং ডাটাবেসে আমার একটি বড় টেবিল রয়েছে, বর্তমানে এটিতে 25 মিলিয়ন সারি রয়েছে এবং এটি আরও দ্রুত আরও বড় হয়ে ওঠে। আমি একটি সাধারণ প্রশ্নের সাথে নির্দিষ্ট সারিগুলি ( তাদের প্রত্যেকের জন্য unit_idকেবল সর্বশেষ unit_timestampসহ ) গুলি নির্বাচন করার চেষ্টা করছি :

SELECT unit_id, max(unit_timestamp) AS latest_timestamp FROM all_units GROUP BY unit_id;

কোনও সূচি ছাড়াই, এই ক্যোয়ারীটি কার্যকর করতে প্রায় 35 সেকেন্ড সময় নেয়। একটি সূচক সংজ্ঞায়িত ( CREATE INDEX partial_idx ON all_units (unit_id, unit_timestamp DESC);) এর সাথে ক্যোয়ারির সময়টি প্রায় (কেবলমাত্র) 19 সেকেন্ডে সংক্ষিপ্ত করা হয়।

আমি অবাক হয়েছি যে আমার জিজ্ঞাসাটি আরও কম সময়ে (মাত্র কয়েক সেকেন্ডের মতো) সম্পাদন করা সম্ভব হবে এবং যদি তাই হয় তবে আরও এটিকে আরও অনুকূল করার জন্য আমার কী পদক্ষেপ নেওয়া উচিত?

আমার টেবিলের কাঠামোটি ডাম্পের মতো দেখাচ্ছে:

CREATE TABLE "all_units" (
"unit_id" int4 NOT NULL,
"unit_timestamp" timestamp(6) NOT NULL,
"lon" float4,
"lat" float4,
"speed" float4,
"status" varchar(255) COLLATE "default"
)
ALTER TABLE "all_units" ADD PRIMARY KEY ("unit_id", "unit_timestamp");

EXPLAIN (ANALYZE, BUFFERS)অনুসরণ:

QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------
HashAggregate  (cost=663998.38..664069.73 rows=7135 width=12) (actual time=84715.050..84732.021 rows=11094 loops=1)
  Buffers: shared hit=192 read=286819
  ->  Seq Scan on ais_sorted  (cost=0.00..538335.92 rows=25132492 width=12) (actual time=0.608..41264.196 rows=25132492 loops=1)
        Buffers: shared hit=192 read=286819
Total runtime: 84746.501 ms

এবং সার্ভারে আমার পিএসএলএল সেটিংস দেখতে দেখতে:

                name                 |  context   |  min_val  |   max_val    |                boot_val
-------------------------------------+------------+-----------+--------------+-----------------------------------------
 allow_system_table_mods             | postmaster |           |              | off
 application_name                    | user       |           |              |
 archive_command                     | sighup     |           |              |
 archive_mode                        | postmaster |           |              | off
 archive_timeout                     | sighup     | 0         | 1073741823   | 0
 array_nulls                         | user       |           |              | on
 authentication_timeout              | sighup     | 1         | 600          | 60
 autovacuum                          | sighup     |           |              | on
 autovacuum_analyze_scale_factor     | sighup     | 0         | 100          | 0.1
 autovacuum_analyze_threshold        | sighup     | 0         | 2147483647   | 50
 autovacuum_freeze_max_age           | postmaster | 100000000 | 2000000000   | 200000000
 autovacuum_max_workers              | postmaster | 1         | 8388607      | 3
 autovacuum_multixact_freeze_max_age | postmaster | 10000000  | 2000000000   | 400000000
 autovacuum_naptime                  | sighup     | 1         | 2147483      | 60
 autovacuum_vacuum_cost_delay        | sighup     | -1        | 100          | 20
 autovacuum_vacuum_cost_limit        | sighup     | -1        | 10000        | -1
 autovacuum_vacuum_scale_factor      | sighup     | 0         | 100          | 0.2
 autovacuum_vacuum_threshold         | sighup     | 0         | 2147483647   | 50
 backslash_quote                     | user       |           |              | safe_encoding
 bgwriter_delay                      | sighup     | 10        | 10000        | 200
 bgwriter_lru_maxpages               | sighup     | 0         | 1000         | 100
 bgwriter_lru_multiplier             | sighup     | 0         | 10           | 2
 block_size                          | internal   | 8192      | 8192         | 8192
 bonjour                             | postmaster |           |              | off
 bonjour_name                        | postmaster |           |              |
 bytea_output                        | user       |           |              | hex
 check_function_bodies               | user       |           |              | on
 checkpoint_completion_target        | sighup     | 0         | 1            | 0.5
 checkpoint_segments                 | sighup     | 1         | 2147483647   | 3
 checkpoint_timeout                  | sighup     | 30        | 3600         | 300
 checkpoint_warning                  | sighup     | 0         | 2147483647   | 30
 client_encoding                     | user       |           |              | SQL_ASCII
 client_min_messages                 | user       |           |              | notice
 commit_delay                        | superuser  | 0         | 100000       | 0
 commit_siblings                     | user       | 0         | 1000         | 5
 config_file                         | postmaster |           |              |
 constraint_exclusion                | user       |           |              | partition
 cpu_index_tuple_cost                | user       | 0         | 1.79769e+308 | 0.005
 cpu_operator_cost                   | user       | 0         | 1.79769e+308 | 0.0025
 cpu_tuple_cost                      | user       | 0         | 1.79769e+308 | 0.01
 cursor_tuple_fraction               | user       | 0         | 1            | 0.1
 data_checksums                      | internal   |           |              | off
 data_directory                      | postmaster |           |              |
 DateStyle                           | user       |           |              | ISO, MDY
 db_user_namespace                   | sighup     |           |              | off
 deadlock_timeout                    | superuser  | 1         | 2147483647   | 1000
 debug_assertions                    | user       |           |              | off
 debug_pretty_print                  | user       |           |              | on
 debug_print_parse                   | user       |           |              | off
 debug_print_plan                    | user       |           |              | off
 debug_print_rewritten               | user       |           |              | off
 default_statistics_target           | user       | 1         | 10000        | 100
 default_tablespace                  | user       |           |              |
 default_text_search_config          | user       |           |              | pg_catalog.simple
 default_transaction_deferrable      | user       |           |              | off
 default_transaction_isolation       | user       |           |              | read committed
 default_transaction_read_only       | user       |           |              | off
 default_with_oids                   | user       |           |              | off
 dynamic_library_path                | superuser  |           |              | $libdir
 effective_cache_size                | user       | 1         | 2147483647   | 16384
 effective_io_concurrency            | user       | 0         | 1000         | 1
 enable_bitmapscan                   | user       |           |              | on
 enable_hashagg                      | user       |           |              | on
 enable_hashjoin                     | user       |           |              | on
 enable_indexonlyscan                | user       |           |              | on
 enable_indexscan                    | user       |           |              | on
 enable_material                     | user       |           |              | on
 enable_mergejoin                    | user       |           |              | on
 enable_nestloop                     | user       |           |              | on
 enable_seqscan                      | user       |           |              | on
 enable_sort                         | user       |           |              | on
 enable_tidscan                      | user       |           |              | on
 escape_string_warning               | user       |           |              | on
 event_source                        | postmaster |           |              | PostgreSQL
 exit_on_error                       | user       |           |              | off
 external_pid_file                   | postmaster |           |              |
 extra_float_digits                  | user       | -15       | 3            | 0
 from_collapse_limit                 | user       | 1         | 2147483647   | 8
 fsync                               | sighup     |           |              | on
 full_page_writes                    | sighup     |           |              | on
 geqo                                | user       |           |              | on
 geqo_effort                         | user       | 1         | 10           | 5
 geqo_generations                    | user       | 0         | 2147483647   | 0
 geqo_pool_size                      | user       | 0         | 2147483647   | 0
 geqo_seed                           | user       | 0         | 1            | 0
 geqo_selection_bias                 | user       | 1.5       | 2            | 2
 geqo_threshold                      | user       | 2         | 2147483647   | 12
 gin_fuzzy_search_limit              | user       | 0         | 2147483647   | 0
 hba_file                            | postmaster |           |              |
 hot_standby                         | postmaster |           |              | off
 hot_standby_feedback                | sighup     |           |              | off
 ident_file                          | postmaster |           |              |
 ignore_checksum_failure             | superuser  |           |              | off
 ignore_system_indexes               | backend    |           |              | off
 integer_datetimes                   | internal   |           |              | on
 IntervalStyle                       | user       |           |              | postgres
 join_collapse_limit                 | user       | 1         | 2147483647   | 8
 krb_caseins_users                   | sighup     |           |              | off
 krb_server_keyfile                  | sighup     |           |              | FILE:/etc/postgresql-common/krb5.keytab
 krb_srvname                         | sighup     |           |              | postgres
 lc_collate                          | internal   |           |              | C
 lc_ctype                            | internal   |           |              | C
 lc_messages                         | superuser  |           |              |
 lc_monetary                         | user       |           |              | C
 lc_numeric                          | user       |           |              | C
 lc_time                             | user       |           |              | C
 listen_addresses                    | postmaster |           |              | localhost
 lo_compat_privileges                | superuser  |           |              | off
 local_preload_libraries             | backend    |           |              |
 lock_timeout                        | user       | 0         | 2147483647   | 0
 log_autovacuum_min_duration         | sighup     | -1        | 2147483647   | -1
 log_checkpoints                     | sighup     |           |              | off
 log_connections                     | backend    |           |              | off
 log_destination                     | sighup     |           |              | stderr
 log_directory                       | sighup     |           |              | pg_log
 log_disconnections                  | backend    |           |              | off
 log_duration                        | superuser  |           |              | off
 log_error_verbosity                 | superuser  |           |              | default
 log_executor_stats                  | superuser  |           |              | off
 log_file_mode                       | sighup     | 0         | 511          | 384
 log_filename                        | sighup     |           |              | postgresql-%Y-%m-%d_%H%M%S.log
 log_hostname                        | sighup     |           |              | off
 log_line_prefix                     | sighup     |           |              |
 log_lock_waits                      | superuser  |           |              | off
 log_min_duration_statement          | superuser  | -1        | 2147483647   | -1
 log_min_error_statement             | superuser  |           |              | error
 log_min_messages                    | superuser  |           |              | warning
 log_parser_stats                    | superuser  |           |              | off
 log_planner_stats                   | superuser  |           |              | off
 log_rotation_age                    | sighup     | 0         | 35791394     | 1440
 log_rotation_size                   | sighup     | 0         | 2097151      | 10240
 log_statement                       | superuser  |           |              | none
 log_statement_stats                 | superuser  |           |              | off
 log_temp_files                      | superuser  | -1        | 2147483647   | -1
 log_timezone                        | sighup     |           |              | GMT
 log_truncate_on_rotation            | sighup     |           |              | off
 logging_collector                   | postmaster |           |              | off
 maintenance_work_mem                | user       | 1024      | 2147483647   | 16384
 max_connections                     | postmaster | 1         | 8388607      | 100
 max_files_per_process               | postmaster | 25        | 2147483647   | 1000
 max_function_args                   | internal   | 100       | 100          | 100
 max_identifier_length               | internal   | 63        | 63           | 63
 max_index_keys                      | internal   | 32        | 32           | 32
 max_locks_per_transaction           | postmaster | 10        | 2147483647   | 64
 max_pred_locks_per_transaction      | postmaster | 10        | 2147483647   | 64
 max_prepared_transactions           | postmaster | 0         | 8388607      | 0
 max_stack_depth                     | superuser  | 100       | 2147483647   | 100
 max_standby_archive_delay           | sighup     | -1        | 2147483647   | 30000
 max_standby_streaming_delay         | sighup     | -1        | 2147483647   | 30000
 max_wal_senders                     | postmaster | 0         | 8388607      | 0
 password_encryption                 | user       |           |              | on
 port                                | postmaster | 1         | 65535        | 5432
 post_auth_delay                     | backend    | 0         | 2147         | 0
 pre_auth_delay                      | sighup     | 0         | 60           | 0
 quote_all_identifiers               | user       |           |              | off
 random_page_cost                    | user       | 0         | 1.79769e+308 | 4
 restart_after_crash                 | sighup     |           |              | on
 search_path                         | user       |           |              | "$user",public
 segment_size                        | internal   | 131072    | 131072       | 131072
 seq_page_cost                       | user       | 0         | 1.79769e+308 | 1
 server_encoding                     | internal   |           |              | SQL_ASCII
 server_version                      | internal   |           |              | 9.3.5
 server_version_num                  | internal   | 90305     | 90305        | 90305
 session_replication_role            | superuser  |           |              | origin
 shared_buffers                      | postmaster | 16        | 1073741823   | 1024
 shared_preload_libraries            | postmaster |           |              |
 sql_inheritance                     | user       |           |              | on
 ssl                                 | postmaster |           |              | off
 ssl_ca_file                         | postmaster |           |              |
 ssl_cert_file                       | postmaster |           |              | server.crt
 ssl_ciphers                         | postmaster |           |              | DEFAULT:!LOW:!EXP:!MD5:@STRENGTH
 ssl_crl_file                        | postmaster |           |              |
 ssl_key_file                        | postmaster |           |              | server.key
 ssl_renegotiation_limit             | user       | 0         | 2147483647   | 524288
 standard_conforming_strings         | user       |           |              | on
 statement_timeout                   | user       | 0         | 2147483647   | 0
 stats_temp_directory                | sighup     |           |              | pg_stat_tmp
 superuser_reserved_connections      | postmaster | 0         | 8388607      | 3
 synchronize_seqscans                | user       |           |              | on
 synchronous_commit                  | user       |           |              | on
 synchronous_standby_names           | sighup     |           |              |
 syslog_facility                     | sighup     |           |              | local0
 syslog_ident                        | sighup     |           |              | postgres
 tcp_keepalives_count                | user       | 0         | 2147483647   | 0
 tcp_keepalives_idle                 | user       | 0         | 2147483647   | 0
 tcp_keepalives_interval             | user       | 0         | 2147483647   | 0
 temp_buffers                        | user       | 100       | 1073741823   | 1024
 temp_file_limit                     | superuser  | -1        | 2147483647   | -1
 temp_tablespaces                    | user       |           |              |
 TimeZone                            | user       |           |              | GMT
 timezone_abbreviations              | user       |           |              |
 trace_notify                        | user       |           |              | off
 trace_recovery_messages             | sighup     |           |              | log
 trace_sort                          | user       |           |              | off
 track_activities                    | superuser  |           |              | on
 track_activity_query_size           | postmaster | 100       | 102400       | 1024
 track_counts                        | superuser  |           |              | on
 track_functions                     | superuser  |           |              | none
 track_io_timing                     | superuser  |           |              | off
 transaction_deferrable              | user       |           |              | off
 transaction_isolation               | user       |           |              | default
 transaction_read_only               | user       |           |              | off
 transform_null_equals               | user       |           |              | off
 unix_socket_directories             | postmaster |           |              | /var/run/postgresql
 unix_socket_group                   | postmaster |           |              |
 unix_socket_permissions             | postmaster | 0         | 511          | 511
 update_process_title                | superuser  |           |              | on
 vacuum_cost_delay                   | user       | 0         | 100          | 0
 vacuum_cost_limit                   | user       | 1         | 10000        | 200
 vacuum_cost_page_dirty              | user       | 0         | 10000        | 20
 vacuum_cost_page_hit                | user       | 0         | 10000        | 1
 vacuum_cost_page_miss               | user       | 0         | 10000        | 10
 vacuum_defer_cleanup_age            | sighup     | 0         | 1000000      | 0
 vacuum_freeze_min_age               | user       | 0         | 1000000000   | 50000000
 vacuum_freeze_table_age             | user       | 0         | 2000000000   | 150000000
 vacuum_multixact_freeze_min_age     | user       | 0         | 1000000000   | 5000000
 vacuum_multixact_freeze_table_age   | user       | 0         | 2000000000   | 150000000
 wal_block_size                      | internal   | 8192      | 8192         | 8192
 wal_buffers                         | postmaster | -1        | 2147483647   | -1
 wal_keep_segments                   | sighup     | 0         | 2147483647   | 0
 wal_level                           | postmaster |           |              | minimal
 wal_receiver_status_interval        | sighup     | 0         | 2147483      | 10
 wal_receiver_timeout                | sighup     | 0         | 2147483647   | 60000
 wal_segment_size                    | internal   | 2048      | 2048         | 2048
 wal_sender_timeout                  | sighup     | 0         | 2147483647   | 60000
 wal_sync_method                     | sighup     |           |              | fdatasync
 wal_writer_delay                    | sighup     | 1         | 10000        | 200
 work_mem                            | user       | 64        | 2147483647   | 1024
 xmlbinary                           | user       |           |              | base64
 xmloption                           | user       |           |              | content
 zero_damaged_pages                  | superuser  |           |              | off

আপনার কি সত্যিই সমস্ত ইউনিট_আইডস দরকার? কারণ যেখানে একটি দফা সাহায্য করবে।
মিহাই

দুর্ভাগ্যক্রমে আমি তাদের সকলের প্রয়োজন এবং এটিকে আরও খারাপ করার জন্য এই মুহূর্তে আমি "কেবল" 11000+ ইউনিট পেয়েছি, তবে ভবিষ্যতে আমি বিশ্বাস করি যে তাদের মধ্যে আরও 5-10 গুণ বেশি হবে।
এরতাটি

SELECT DISTINCT ON (unit_id),unit_timestamp FROM t ORDER BY unit_timestamp DESCইউনিট_টাইমস্ট্যাম্পে একটি পৃথক সূচক চেষ্টা করুন সহায়তা করবে।
মিহাই

বস্তুগত দৃষ্টিভঙ্গি কি একটি বিকল্প?
ব্যবহারকারী 1363989

এইচএম, বস্তুগত দৃষ্টিভঙ্গি সম্পর্কে মোটেই জানতেন না। আমি একটি তৈরি করার চেষ্টা করব এবং এটি কার্যকর হবে কিনা তা দেখুন!
এরতাটি

উত্তর:


13

প্রশ্ন

আপনার প্রশ্নটি পুরো টেবিলটি (বা পুরো সূচিটি) স্ক্যান করতে বাধ্য হয়েছে is প্রতিটি সারি অন্য স্বতন্ত্র ইউনিট হতে পারে। প্রক্রিয়াটি সংক্ষিপ্তভাবে সংক্ষিপ্ত করার একমাত্র উপায় হ'ল সমস্ত উপলব্ধ ইউনিটগুলির সাথে একটি পৃথক টেবিল থাকবে - যা এন্ট্রিগুলির তুলনায় যথেষ্ট কম ইউনিট রয়েছে ততক্ষণ সহায়তা করবে all_units
যেহেতু 25 এম এন্ট্রিগুলির জন্য আপনার 11k ডলার ইউনিট রয়েছে (মন্তব্যে যুক্ত), এটি অবশ্যই সহায়তা করবে।

মানগুলির ফ্রিকোয়েন্সিগুলির উপর নির্ভর করে আপনার ফলাফলটি দ্রুত দ্রুত পাওয়ার জন্য বেশ কয়েকটি ক্যোয়ারী কৌশল রয়েছে:

  • পুনরাবৃত্তি সিটিই
  • JOIN LATERAL
  • পারস্পরিক সম্পর্কযুক্ত subquery

এসও সম্পর্কিত সম্পর্কিত উত্তরের বিবরণ:

কেবলমাত্র প্রাইমারি কীটির অন্তর্নিহিত সূচকের প্রয়োজন রয়েছে (unit_id, unit_timestamp), এই কোয়েরিতে একটি অন্তর্নিহিত ব্যবহার করে কৌশলটি করা উচিত JOIN LATERAL:

SELECT u.unit_id, a.max_ts
FROM unit u
  , (SELECT unit_timestamp AS max_ts
     FROM   all_units
     WHERE  unit_id = u.unit_id
     ORDER  BY unit_timestamp DESC
     LIMIT  1
     ) a;

all_unitsআপনার মূল ক্যোয়ারির মতো প্রবেশ ছাড়াই ইউনিটগুলি বাদ দেয় ।
বা একটি স্বল্প সংযুক্ত subquery (সম্ভবত আরও দ্রুত):

SELECT u.unit_id
    , (SELECT unit_timestamp
       FROM   all_units
       WHERE  unit_id = u.unit_id
       ORDER  BY unit_timestamp DESC
       LIMIT  1) AS max_ts
FROM unit u;

প্রবেশ ছাড়াই ইউনিট অন্তর্ভুক্ত all_units

দক্ষতা ইউনিট প্রতি এন্ট্রি সংখ্যা উপর নির্ভর করে । আরও এন্ট্রি, এই প্রশ্নের একটির জন্য আরও সম্ভাবনা।

একটি দ্রুত স্থানীয় পরীক্ষা অনুরূপ টেবিল (500 "ইউনিট", বড় টেবিলের 1M সারি) সঙ্গে, সম্পর্ক subqueries সঙ্গে ক্যোয়ারী ~ ছিল 500x দ্রুত আপনার মূল নয়। আপনার সূচক-কেবলমাত্র আপনার মূল ক্যোয়ারিতে বড় টেবিল বনাম সিক্যুয়াল স্ক্যানের পিকে সূচীতে স্ক্যান করে।

আপনার টেবিল থেকে tends to get even larger rapidly, একটি বস্তুগত দৃশ্য সম্ভবত কোনও বিকল্প নয়।

এছাড়াও রয়েছে DISTINCT ONঅন্য সম্ভাব্য ক্যোয়ারী পন্থা হিসেবে, কিন্তু এটা কমই, দ্রুত আপনার মূল প্রশ্নের সাথে তুলনায় হতে যাচ্ছে তাই উত্তর না তোমার জন্য খুঁজছেন। বিশদ এখানে:

সূচক

আপনার partial_idx:

CREATE INDEX partial_idx ON all_units (unit_id, unit_timestamp DESC);

আসলে আংশিক সূচক এবং অপ্রয়োজনীয়ও নয়। পোস্টগ্রাগুলি প্রায় একই গতিতে সূচকগুলি পিছনে স্ক্যান করতে পারে, পিকে ভালভাবে কাজ করে। ছাড়ুন এই অতিরিক্ত সূচি।

টেবিল বিন্যাস

আপনার টেবিল সংজ্ঞা জন্য পয়েন্ট কয়েক।

CREATE TABLE all_units (
unit_timestamp timestamp,
unit_id int4,
lon     float4,
lat     float4,
speed   float4,
status  varchar(255),   -- might be improved.
PRIMARY KEY (unit_id, unit_timestamp)
);
  • timestamp(6)খুব বেশি অর্থবোধ করে না, এটি কার্যকরভাবে ঠিক একইরকম timestamp, যা ইতিমধ্যে সর্বাধিক 6 ভগ্নাংশের সংখ্যা সংরক্ষণ করে।

  • আমি প্যাডিংয়ের 4 বাইট সংরক্ষণের জন্য প্রথম দুটি কলামের অবস্থান পরিবর্তন করেছি, যা 25 এম সারিগুলির জন্য 100 এমবি পরিমাণে (সঠিক ফলাফল নির্ভর করে status)। ছোট টেবিলগুলি প্রতিটি কিছুর জন্য সাধারণত দ্রুত হয়।

  • যদি statusনিখরচায় পাঠ্য না হয় তবে কিছু ধরণের মানকযুক্ত নোট হয় তবে আপনি এটিকে অনেক সস্তার কিছু দিয়ে প্রতিস্থাপন করতে পারেন। আরো varchar(255)Postgres মধ্যে

সার্ভার কনফিগারেশন

আপনাকে আপনার সার্ভারটি কনফিগার করতে হবে। আপনার বেশিরভাগ সেটিংস রক্ষণশীল ডিফল্ট বলে মনে হচ্ছে। 1 মেগাবাইট shared_buffersবা work_memমনে হয় কম পথে সারি লক্ষ লক্ষ সঙ্গে একটি ইনস্টলেশনের জন্য। এবং random_pare_cost = 4প্রচুর র‌্যাম সহ যে কোনও আধুনিক সিস্টেমে উচ্চতর। ম্যানুয়াল এবং পোস্টগ্রিস উইকি দিয়ে শুরু করুন:


সম্পূর্ণতার জন্য, আপনার DISTINCT ONএই সমস্যার জন্য কৌশলগুলির তালিকায় মথটি যুক্ত করা উচিত (অবশ্যই যদি ওপি তার দাবী হিসাবে সমস্ত সারিগুলি প্রদর্শন করতে চায়, এবং কোডটি দেখায় কেবল 2 টি কলাম নয়)
ypercubeᵀᴹ

@ টাইপারকিউব: সম্পূর্ণতার জন্য, হ্যাঁ। তবে এটি খুব দ্রুততর হতে চলেছে। ওপি উত্তরটি খুঁজছে না।
এরউইন ব্র্যান্ডসেটেটার

আপনি কী ব্যাখ্যা করতে পারেন যে একটি পুনরাবৃত্ত সিটিই কীভাবে দ্রুত হতে চলেছে (বা এমনকি: এটি প্রথম স্থানে সমস্যার সমাধান করবে কীভাবে - "সর্বাধিক" সমস্যার জন্য আমি পুনরাবৃত্ত সিটিই সম্পর্কে কখনই ভাবিনি)
a_horse_with_no_name

1
@ মিহাই: না, এটিতে একটি বিটম্যাপ সূচক স্ক্যান রয়েছে (এটি এটি "
ফ্লাইতে

3
নিবন্ধন করুন সবার আগে এই বিস্তৃত উত্তরটির জন্য আপনাকে অনেক ধন্যবাদ, এটি অত্যন্ত সহায়ক ছিল, আমি আপনাকে কতটা ব্যাখ্যা করতে পারি না! :) দ্বিতীয়ত, আপনার ক্যোয়ারী (দ্বিতীয়টি) হ'ল দুর্দান্ত! ক্যোয়ারির সময়টি এখন প্রায় 0.2 সেকেন্ডের !!! :) আমি প্রথম ক্যোয়ারীর সাথেও চারপাশে খেলার চেষ্টা করেছি তবে আমি যে ত্রুটি পেয়েছি তা সমাধান করতে আমি পরিচালনা করতে পারি নি: অভ্যন্তরীণ প্রশ্নের invalid reference to FROM-clause entry for table "u"সাথে এই WHEREধারাটিতে। দুঃখিত, তবে আমি নিজেই ডেটাবেসগুলির সাথে খুব ভাল না তাই দ্বিতীয় क्वेরিটি ইতিমধ্যে অনেক সাহায্য করার কারণে আমি এটির সাথে আমার মাথাটি অত্যাচার করি নি।
ত্রুটি-বিচ্যুতি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.