当我将LIMIT 1添加到MySQL查询时,它是否在找到1个结果后停止搜索(从而使其更快)或者它仍然获取所有结果并在结束时截断?
我从互联网资源中读到,当偏移量增加时,查询会很慢.但就我而言,我觉得它太慢了.我在用postgres 9.3
这是查询(id是主键):
select * from test_table offset 3900000 limit 100;
Run Code Online (Sandbox Code Playgroud)
它返回我周围的数据10 seconds.我觉得它太慢了.我4 million在桌子上有记录.数据库的总体大小是23GB.
机器配置:
RAM: 12 GB
CPU: 2.30 GHz
Core: 10
Run Code Online (Sandbox Code Playgroud)
postgresql.conf我更改的文件中的几个值如下所示.其他人是默认的.
shared_buffers = 2048MB
temp_buffers = 512MB
work_mem = 1024MB
maintenance_work_mem = 256MB
dynamic_shared_memory_type = posix
default_statistics_target = 10000
autovacuum = on
enable_seqscan = off ## its not making any effect as I can see from Analyze doing seq-scan
Run Code Online (Sandbox Code Playgroud)
除了这些,我也通过改变的值试过random_page_cost = 2.0和cpu_index_tuple_cost = 0.0005 …