Home > Archive > MySQL > πŸ‹[MySQL] SELECT 쑰회 κ²°κ³Ό LIMIT 1000 ROW ν•΄μ œν•˜κΈ°.

πŸ‹[MySQL] SELECT 쑰회 κ²°κ³Ό LIMIT 1000 ROW ν•΄μ œν•˜κΈ°.
MySQL

MySQLμ—μ„œ SELECT의 쑰회 κ²°κ³Όκ°€ 1000개만 좜λ ₯이 λ˜λŠ” 이유.

μ²˜μŒμ—λŠ” MySQL둜 for 문을 λ§Œλ“€ 수 μžˆλŠ”μ§€ ν˜ΈκΈ°μ‹¬μ—μ„œ μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€.(for문에 λŒ€ν•œ ν¬μŠ€νŒ…μ€ λ”°λ‘œ μ˜¬λ¦¬κ² μŠ΅λ‹ˆλ‹€.)

κ·Έλž˜μ„œ λ‹€μŒκ³Ό 같이 μ½”λ“œλ₯Ό λ§Œλ“€κ³  μ‹€ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

delimiter $$ 
create procedure loopInsert()
begin
	declare i int;
	set i = 1;

	while (i <= 2000) do
		insert into test_table (id) values(i);
    
		set i = i + 1;
	end while;
end $$

call loopInsert(); --2000개의 idκ°€ λ§Œλ“€μ–΄μ§.

μ €μ˜ μ˜ˆμƒμ€ 2000개의 row(ν•„λ“œ)κ°€ λ§Œλ“€μ–΄μ Έ idκ°€ 1~2000이 λ˜μ–΄ Result 값에 λ³΄μ—¬μ§ˆ 쀄 μ•Œμ•˜μœΌλ‚˜ id의 갯수λ₯Ό μ„Έμ–΄μ£ΌλŠ” SQL 문을 λ§Œλ“€μ–΄ μ‹€ν–‰ μ‹œμΌœλ³΄λ‹ˆ 1000 μ΄λΌλŠ” 결과값이 λ‚˜μ™”μŠ΅λ‹ˆλ‹€.

SELECT COUNT(id) FROM test_table; -- κ²°κ³Όκ°’ count(id) 1000

κ·Έλž˜μ„œ 확인을 해보렀 λ‹€μŒκ³Ό 같은 쿼리문을 λ§Œλ“€μ–΄ μ‹€ν–‰ν•΄λ΄€μŠ΅λ‹ˆλ‹€.

SELECT * FROM test_table; 
-- Action select * from test_table LIMIT 0, 1000
-- κ²°κ³Όκ°’ 1~999, Response 1000 row(s) returned
  • μ—¬κΈ°μ„œ μ£Όλͺ©ν•  점은 β€œAction select * from test_table LIMIT 0, 1000” μž…λ‹ˆλ‹€.
    • μ €λŠ” LIMIT ν‚€μ›Œλ“œλ₯Ό λ°œκ²¬ν–ˆκ³  이 LIMIT을 ν•΄μ œν•˜λŠ” 방법을 μ°Ύμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

LIMIT ν•΄μ œ 방법1 : 직접 LIMIT μ œν•œ λ²”μœ„ κ±Έμ–΄μ£ΌκΈ°

직접적인 ν•΄κ²° 방법은 μ•„λ‹ˆμ§€λ§Œ,
쿼리 μžμ²΄κ°€ β€˜LIMIT 1000β€™μœΌλ‘œ κ³ μ •λ˜κΈ° λ•Œλ¬Έμ— 쿼리에 LIMITλ₯Ό λ„£μ–΄ LIMIT μ œν•œμ„ λŠ˜λ €μ£ΌλŠ” λ°©λ²•μž…λ‹ˆλ‹€.

  • 이 방식은 ꢌμž₯ν•˜λŠ” 방식은 μ•„λ‹ˆλΌκ³  ν•©λ‹ˆλ‹€. 이런 λ°©μ‹μœΌλ‘œ μ‘°νšŒν•  수 μžˆλ‹€λŠ” 방법 쀑 ν•˜λ‚˜λ₯Ό μ œμ‹œν•œ 것 λΏμ΄λΌλŠ” λΈ”λ‘œκ·Έμ˜ 글을 λ³΄μ•˜μŠ΅λ‹ˆλ‹€.
    • μ•„λž˜μ™€ 같이 LIMIT ν‚€μ›Œλ“œλ₯Ό 쿼리 내에 직접 λͺ…μ‹œν•˜μ—¬ λ²”μœ„λ₯Ό μ œκ³΅ν•΄μ£ΌλŠ” λ°©λ²•μž…λ‹ˆλ‹€.
      select * from table_test LIMIT 99999999;
      

LIMIT ν•΄μ œ 방법2 : Workbench μ„€μ • Limit Rows μ˜΅μ…˜ ν•΄μ œν•˜κΈ°

MySQLμ—μ„œμ˜ Workbenchμ—λŠ” SELECT 쿼리 쑰회 κ²°κ³Όλ₯Ό 자체적으둜 행을 μ œν•œν•΄μ„œ λ³΄μ—¬μ£ΌλŠ” μ˜΅μ…˜μ΄ μžˆμŠ΅λ‹ˆλ‹€ 이게 κΈ°λ³Έ κ°’ 1000ν–‰μœΌλ‘œ λ˜μžˆλŠ”λ°, 이 μ˜΅μ…˜μ„ λ³€κ²½ λ˜λŠ” ν•΄μ œν•˜λ©΄ λ©λ‹ˆλ‹€.

  • settings > SQL Execution > SELECT Query Results > Limit Rows ν•΄μ œ
    • ν˜Ήμ€ Limit Rows Count ν–‰ 수 λ³€κ²½.

Limit Rows μ˜΅μ…˜μ˜ μž₯.단점.

  • μž₯점
    • ν…Œμ΄λΈ”μ— 속해 μžˆλŠ” λ°μ΄ν„°μ˜ 수λ₯Ό μ •ν™•ν•˜κ²Œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 단점
    • λ¬΄λΆ„λ³„ν•œ 전체 μ‘°νšŒλŠ” λ°μ΄ν„°λ² μ΄μŠ€μ˜ κ³ΌλΆ€ν•˜μ— 영ν–₯을 λ―ΈμΉ  수 μžˆμŠ΅λ‹ˆλ‹€.

결둠적으둜 쿼리λ₯Ό μž‘μ„±ν•˜κ³  μ‹€ν–‰ν•˜λŠ” κ°œλ°œμžκ°€ 상황에 맞게 잘 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

즉, μ΅œμ ν™”μ™€ DB μ„±λŠ₯에 영ν–₯에 λŒ€ν•΄ 잘 고민해보고 쿼리λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

  • μ˜ˆμ‹œ 1) ν…Œμ΄λΈ” ꡬ쑰 및 데이터 확인 μš©λ„.
    SELECT * FROM ν…Œμ΄λΈ”μ΄λ¦„ LIMIT 5;
    
  • μ˜ˆμ‹œ 2) 쑰건에 λ§žλŠ” νŠΉμ • 데이터 확인 μš©λ„.
    SELECT 컬럼λͺ… FROM ν…Œμ΄λΈ”λͺ… WHERE μ‘°κ±΄μž…λ ₯ LIMIT 5;