SQLite ๊ฐ์ฒด ์บ์‹œ

์„ค๋ช…

์ง€์†์  ๊ฐ์ฒด ์บ์‹œ๋Š” ์‚ฌ์ดํŠธ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์ด ์บ์‹œ๋Š” ๋„๋ฆฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ SQLite3 ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์„ ํƒ์ ์œผ๋กœ igbinary ๋ฐ APCu php ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค๊ฐ€ ์ด๋Ÿฌํ•œ ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ, ์ œ์–ดํ•˜๋Š” ์„œ๋ฒ„์— ์„ค์น˜ํ•˜๊ธฐ๋„ ์‰ฝ์Šต๋‹ˆ๋‹ค.

์ด๊ฒŒ ๋ฌด์Šจ ๋‚ด์šฉ์ธ๊ฐ€์š”?

์‚ฌ์ดํŠธ์˜ ์›น ์„œ๋ฒ„ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์— ๊ด€ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์˜ค๋ธŒ์ ํŠธ ์บ์‹œ๋Š” MariaDB ๋˜๋Š” MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ž‘์—…๋Ÿ‰์„ ์ค„์ž„์œผ๋กœ์จ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํŽ˜์ด์ง€ ์บ์‹œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค; ์ด๋Ÿฌํ•œ ์˜์†์  ์˜ค๋ธŒ์ ํŠธ๋Š” ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ์บ์‹œ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ค๋ธŒ์ ํŠธ๋“ค์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์ค€๋น„๋œ ์›น ํŽ˜์ด์ง€ ์กฐ๊ฐ์ด ์•„๋‹ˆ๋ผ ์›Œ๋“œํ”„๋ ˆ์Šค ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ ์˜ค๋ธŒ์ ํŠธ์ž…๋‹ˆ๋‹ค.

์บ์‹œ๋Š” ์ปดํ“จํŒ…์—์„œ ์–ด๋””์—๋‚˜ ์žˆ์œผ๋ฉฐ, ์›Œ๋“œํ”„๋ ˆ์Šค์—๋Š” ์ž์ฒด ์บ์‹ฑ ํ•˜์œ„ ์‹œ์Šคํ…œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ๋Š” ๋น„์šฉ์ด ํฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์กฐํšŒ๋‚˜ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ์˜ ๋‹จ๊ธฐ ๋ณต์‚ฌ๋ณธ์„ ๋‹ด๊ณ  ์žˆ์–ด ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋น„์šฉ์ด ํฐ ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜๋Š” ๋Œ€์‹  ๊ทธ ๋ณต์‚ฌ๋ณธ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ(๋‹ค๋ฅธ ๊ฐ์ฒด ์บ์‹ฑ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ)์€ ์›Œ๋“œํ”„๋ ˆ์Šค์˜ ์บ์‹ฑ ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ํ™•์žฅํ•˜์—ฌ ํŽ˜์ด์ง€ ๋ณด๊ธฐ์—์„œ ํŽ˜์ด์ง€ ๋ณด๊ธฐ๋กœ ๊ทธ ๋‹จ๊ธฐ ๋ณต์‚ฌ๋ณธ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์›Œ๋“œํ”„๋ ˆ์Šค์˜ ์บ์‹œ๋Š” ์šฐ์—ฐํžˆ๋„ ๋ฉ”๋ชจ์ด์ œ์ด์…˜ ์บ์‹œ์ž…๋‹ˆ๋‹ค.

์˜์†์  ์˜ค๋ธŒ์ ํŠธ ์บ์‹œ๊ฐ€ ์—†์œผ๋ฉด, ๋ชจ๋“  ์›Œ๋“œํ”„๋ ˆ์Šค ํŽ˜์ด์ง€ ๋ณด๊ธฐ๋งˆ๋‹ค ์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด MariaDB ๋˜๋Š” MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•˜๋ฉด ์›Œ๋“œํ”„๋ ˆ์Šค๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์—์„œ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ์ œ์•ผ ์ฝ˜ํ…์ธ ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜์†์  ์˜ค๋ธŒ์ ํŠธ ์บ์‹œ๊ฐ€ ์žˆ์œผ๋ฉด ์›Œ๋“œํ”„๋ ˆ์Šค๋Š” ์ฆ‰์‹œ ํ•„์š”ํ•œ ์ •๋ณด์˜ ๋งŽ์€ ๋ถ€๋ถ„์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฝ˜ํ…์ธ ๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ฐ€ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋‚˜์š”?

์‚ฌ์ดํŠธ๊ฐ€ ๋‹จ์ผ ์›น ์„œ๋ฒ„ ๋จธ์‹ ์—์„œ ์‹คํ–‰๋˜๊ณ  ๊ทธ ์„œ๋ฒ„๊ฐ€ PHP์— ๋Œ€ํ•œ SQLite3 ๋ฐ igbinary ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค๋ฉด, ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๊ฑฐ์˜ ํ™•์‹คํžˆ ์‚ฌ์ดํŠธ๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์„œ๋ฒ„๊ฐ€ APCu ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์ œ๊ณตํ•œ๋‹ค๋ฉด, ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๊ทธ๊ฒƒ๋„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ถ€ ํ˜ธ์ŠคํŒ… ๊ณต๊ธ‰์—…์ฒด๋Š” redis ์บ์‹œ ์„œ๋ฒ„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ณต๋˜๋Š” ๊ฒฝ์šฐ redis๋Š” ์ข‹์€ ์„ ํƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Redis Object Cache ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. redis๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์ดํŠธ๋Š” ํ•˜๋‚˜์˜ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋‹ค๋ฅธ ๋น„SQL ์ €์žฅ ์„œ๋ฒ„์ธ redis๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ˜ธ์ŠคํŒ… ๊ณต๊ธ‰์—…์ฒด๋Š” memcached๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ์ด๋Š” Memcached Object Cache ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ LiteSpeed Cache์™€ ๊ฐ™์€ ์ผ๋ถ€ ๋Œ€ํ˜• ๋‹ค๋ชฉ์  ์บ์‹œ ํ”Œ๋Ÿฌ๊ทธ์ธ๋„ ์ด๋Ÿฌํ•œ ์บ์‹œ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๊ฐ์ฒด ์บ์‹ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์บ์‹œ-์„œ๋ฒ„ ๋ฐฉ์‹์˜ ์˜ค๋ธŒ์ ํŠธ ์บ์‹ฑ์€ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ๋œ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์›น ์„œ๋ฒ„๊ฐ€ ์‚ฌ์ดํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ง„๊ฐ€๋ฅผ ๋ฐœํœ˜ํ•ฉ๋‹ˆ๋‹ค. SQLite๋Š” ์—ฌ๋Ÿฌ ๋Œ€์˜ ์›น ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ๋Š” ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋‹จ์ผ-์„œ๋ฒ„ ์‚ฌ์ดํŠธ ๊ตฌ์„ฑ์—์„œ๋Š” APCu์˜ ๋„์›€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” SQLite๊ฐ€ ์„ฑ๋Šฅ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋Œ€๋‹ค์ˆ˜์˜ ์‚ฌ์ดํŠธ๋Š” ๋‹จ์ผ-์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.

APCu

APCu๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ์ €์žฅ ๋งค์ฒด์ž…๋‹ˆ๋‹ค. ์›Œ๋“œํ”„๋ ˆ์Šค์™€ ๊ฐ™์€ PHP ํ”„๋กœ๊ทธ๋žจ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์–ด ํ•„์š”ํ•  ๋•Œ ์•„์ฃผ ๋น ๋ฅด๊ฒŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. APCu๊ฐ€ ํ˜ธ์ŠคํŒ… ์„œ๋ฒ„์— ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๋ฉด ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ APCu ์‚ฌ์šฉ์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ผ๋ฐ˜์ ์ธ ์บ์‹œ ์กฐํšŒ ์‹œ๊ฐ„์„ SQLite ์กฐํšŒ ์‹œ๊ฐ„์˜ 5๋ถ„์˜ 1 ์ดํ•˜๋กœ ์ค„์—ฌ์ฃผ๋ฉฐ, SQLite ์กฐํšŒ ์‹œ๊ฐ„ ์ž์ฒด๋„ ์ˆ˜์‹ญ ๋งˆ์ดํฌ๋กœ์ดˆ ์ •๋„์ž…๋‹ˆ๋‹ค. ์„ฑ๋Šฅ์€ ํŠนํžˆ ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์€ ์›น์‚ฌ์ดํŠธ์—์„œ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

APCu๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์„ค์น˜๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ APCu ์—†์ด๋„ ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋ฉฐ, APCu๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค.

WP-CLI: APCu๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๋”๋ผ๋„ ์›น์‚ฌ์ดํŠธ๊ฐ€ WP-CLI๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ WP-CLI ํ”„๋กœ๊ทธ๋žจ์€ APCu ์บ์‹œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— SQLite๋กœ์˜ ์บ์‹ฑ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๋ชจ๋“  ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ APCu์™€ SQLite ๋ชจ๋‘์— ๊ธฐ๋กํ•˜๊ณ  ๋‘ ์บ์‹œ๊ฐ€ ๋™๊ธฐํ™”๋˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

WP-CLI

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด WP-CLI๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‰˜์— ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.

wp help sqlite-object-cache

ํฌ๋ ˆ๋”ง

๋‹ค์Œ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค: Till Krรผss. ๊ทธ์˜ Redis Object Cache ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๋ชจ๋ธ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฒ€ํ† ํ•ด ์ฃผ์‹  Ari Stathopoulos๋‹˜๊ณผ Jonny Harris๋‹˜๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ณผ์ค‘ํ•œ ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆฐ ์‹œ์Šคํ…œ์—์„œ ๋ฐœ์ƒํ•œ ๋ฒ„๊ทธ๋ฅผ ์ฐพ์•„ ๊ณ ์ณ ์ฃผ์‹  Matt Jones์—๊ฒŒ ๊ฒฝ์˜๋ฅผ ํ‘œํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ๋„์›€์„ ์ฃผ์‹  Massimo Villa๋‹˜๊ณผ ํฌ๊ด„์ ์ธ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ํ•ด ์ฃผ์‹  nickchomey๋‹˜๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒฐํ•จ์€ ๋ฌผ๋ก  ์ „์ ์œผ๋กœ ์ž‘์„ฑ์ž์˜ ์ฑ…์ž„์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  JetBrains๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋„๊ตฌ, ํŠนํžˆ PhpStorm์„ ์ œ๊ณตํ•ด ์ค€ ๊ฒƒ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์›Œ๋“œํ”„๋ ˆ์Šค์™€ ๊ฐ™์€ ๋ฐฉ๋Œ€ํ•œ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐ PhpStorm์˜ ๋„๊ตฌ๊ฐ€ ์—†์—ˆ๋‹ค๋ฉด ์ด์™€ ๊ฐ™์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์€ ์ƒ์ƒํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

๋‚ด ์›Œ๋“œํ”„๋ ˆ์Šค ์‚ฌ์ดํŠธ๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ๋” ์•Œ์•„๋ณด๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

์ €ํฌ๋Š” ์‚ฌ์ดํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํšจ์œจ์„ฑ ํ–ฅ์ƒ์„ ๋•๋Š” ์—ฌ๋Ÿฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ž์„ธํžˆ ์ฝ์–ด๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฐ์ƒท

  • ์„ค์ • ํŒจ๋„. ์„ค์ • > ๊ฐ์ฒด ์บ์‹œ์—์„œ ์ ‘๊ทผํ•˜์„ธ์š”.
  • ์„ฑ๋Šฅ ํ†ต๊ณ„ ํŒจ๋„.

์„ค์น˜

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ž‘๋™ํ•˜๋ ค๋ฉด ์„œ๋ฒ„์— PHP์šฉ SQLite3 ํ™•์žฅ ๊ธฐ๋Šฅ์ด ๋ฐ˜๋“œ์‹œ ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

igbinary ๋ฐ APCu ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์ด ์„ค์น˜๋˜์–ด ์žˆ์œผ๋ฉด, ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋” ํšจ์œจ์ ์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์•„๋„ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

SQLite Object Cacheโ€ ์„ค์น˜๋Š” ์›Œ๋“œํ”„๋ ˆ์Šค ๋Œ€์‹œ๋ณด๋“œ์˜ โ€œํ”Œ๋Ÿฌ๊ทธ์ธ > ์ƒˆ๋กœ ์ถ”๊ฐ€โ€ ํ™”๋ฉด์—์„œ โ€œSQLite Object Cacheโ€๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜, ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  1. WordPress.org์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋‹ค์šด๋กœ๋“œํ•˜์„ธ์š”
  2. ์›Œ๋“œํ”„๋ ˆ์Šค ๋Œ€์‹œ๋ณด๋“œ์˜ โ€˜ํ”Œ๋Ÿฌ๊ทธ์ธ > ์ƒˆ๋กœ ์ถ”๊ฐ€ > ์—…๋กœ๋“œโ€™ ํ™”๋ฉด์—์„œ ZIP ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜์„ธ์š”.
  3. ์›Œ๋“œํ”„๋ ˆ์Šค์˜ โ€˜ํ”Œ๋Ÿฌ๊ทธ์ธโ€™ ๋ฉ”๋‰ด์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ™œ์„ฑํ™”ํ•˜์„ธ์š”.

๋˜๋Š”, ๋‹ค์Œ WP-CLI ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•˜๊ณ , ๋ณด์•ˆ ์„ค์ •์„ ํ•˜๊ณ , ํ™œ์„ฑํ™”ํ•˜๊ณ , ์บ์‹œ ํฌ๊ธฐ๋ฅผ 32MiB๋กœ ์„ค์ •ํ•˜์„ธ์š”.

wp plugin install sqlite-object-cache
wp config set WP_CACHE_KEY_SALT $(openssl rand -base64 12)
wp plugin activate sqlite-object-cache
wp sqlite-object-cache size 32

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ wp-config.php ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์„ ํƒ์  ์„ค์ •์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋Š” ๋™์•ˆ์—๋Š” ์ด๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ๋งˆ์„ธ์š”. ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ๋จผ์ € ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋น„ํ™œ์„ฑํ™”ํ•œ ๋‹ค์Œ ๋ณ€๊ฒฝํ•˜๊ณ , ๊ทธ ํ›„ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋‹ค์‹œ ํ™œ์„ฑํ™”ํ•˜์„ธ์š”.

  • WP_SQLITE_OBJECT_CACHE_SERIALIZE. true์ด๋ฉด ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ SQLite์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด โ€˜s serialize() ๋ฐฉ์‹์„ ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด, ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•  ๊ฒฝ์šฐ ๋” ํšจ์œจ์ ์ธ igbinary ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • WP_SQLITE_OBJECT_CACHE_DB_FILE. ์ด๋Š” SQLite ํŒŒ์ผ ๊ฒฝ๋กœ๋ช…์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ โ€ฆ/wp-content/.ht.object_cache.sqlite์ž…๋‹ˆ๋‹ค. ๋ฌธ์„œ ๋ฃจํŠธ ์™ธ๋ถ€์— SQLite ์บ์‹œ ํŒŒ์ผ์„ ๋‘๋ ค๋ฉด ์ด ๊ฐ’์„ ์‚ฌ์šฉํ•˜์„ธ์š”.
  • WP_SQLITE_OBJECT_CACHE_TIMEOUT. ์ด๊ฒƒ์€ SQLite ํƒ€์ž„์•„์›ƒ์„ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ์„ค์ •ํ•˜๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: 5000. (ํ†ต๊ณ„ ํƒญ์— ํ‘œ์‹œ๋˜๋Š” ์‹œ๊ฐ„์€ ์ด ํƒ€์ž„์•„์›ƒ ์„ค์ •๊ณผ ๋น„๊ตํ•˜๋ฉด ๋งˆ์ดํฌ๋กœ์ดˆ ๋‹จ์œ„์ž„์— ์œ ์˜ํ•˜์„ธ์š”.)
  • WP_SQLITE_OBJECT_CACHE_JOURNAL_MODE. ์ด๋Š” SQLite ์ €๋„ ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: โ€˜WALโ€™. ๊ฐ€๋Šฅํ•œ ๊ฐ’: DELETE | TRUNCATE | PERSIST | MEMORY | WAL | WAL2 | NONE. (๋ชจ๋“  SQLite3 ๊ตฌํ˜„์ด WAL2๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.)
  • WP_SQLITE_OBJECT_CACHE_APCU. true์ด๋ฉด APCu RAM์œผ๋กœ ์บ์‹œ ๊ฐ€์†์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ์„ค์ • ํŽ˜์ด์ง€์—์„œ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • WP_SQLITE_OBJECT_CACHE_CHECKPOINT_FREQ. How often, probabilistically, to force checkpointing SQLite3. Make this number smaller on busy sites if your WAL file gets too long. Default 2000.
  • WP_CACHE_KEY_SALT. ์บ์‹œ ํ‚ค๋ฅผ ์ถ”์ธกํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค๋ ค๋ฉด ์ด ๊ฐ’์„ ์ถ”์ธกํ•˜๊ธฐ ํž˜๋“  ๋ฌด์ž‘์œ„ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜์„ธ์š”. ์ด ์„ค์ •์€ ๋‹ค๋ฅธ ์บ์‹œ ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์บ์‹œ ํ‚ค ์†”ํŠธ ๊ตฌ์„ฑํ•˜๊ธฐ

์—ฌ๋Ÿฌ ์‚ฌ์ดํŠธ๊ฐ€ ๋™์ผํ•œ ์„œ๋ฒ„ ํ•˜๋“œ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ณต์œ ํ•˜๋ฉด ๋•Œ๋•Œ๋กœ ๋™์ผํ•œ ์บ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์‚ฌ์ดํŠธ์— ๋Œ€ํ•ด ์ถ”์ธกํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฌด์ž‘์œ„ ๊ฐ’์œผ๋กœ WP_CACHE_KEY_SALT์„ ์„ค์ •ํ•˜๋ฉด ํ•œ ์‚ฌ์ดํŠธ๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๊ธฐ ํ›จ์”ฌ ์–ด๋ ต๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค๋ฅธ ์บ์‹œ ํ”Œ๋Ÿฌ๊ทธ์ธ์—๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด WP_CACHE_KEY_SALT ๊ฐ’์€ ํŽ˜์ด์ง€ ์บ์‹œ ๋ฐ ์˜์† ๊ฐ์ฒด ์บ์‹œ๋ฅผ ํฌํ•จํ•œ ์–ด๋–ค ์บ์‹œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์ „์— ์‚ฌ์ดํŠธ์˜ wp-config.php ํŒŒ์ผ์— ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ’์„ ์„ค์ •ํ•˜๋ ค๋ฉด wp-config.php์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ค„์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”.

define( 'WP_CACHE_KEY_SALT', 'Random_t6xJix' );

๋ฌผ๋ก  ์ด ์˜ˆ์ œ์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ณ  ์ž์ฒด ๋žœ๋ค ๊ฐ’์„ ์‚ฌ์šฉํ•˜์„ธ์š”. Linux ๋ช…๋ น์ค„ ์…ธ์—์„œ openssl rand -base64 12๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” WP-CLI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ’์„ ์ง์ ‘ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

wp config set WP_CACHE_KEY_SALT $(openssl rand -base64 12)

APCu ์„ค์ • ๋ฐ ์‚ฌ์šฉ

APCu๋Š” ์ธ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ ๋งค์ฒด์ž…๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŒ… ์„œ๋ฒ„์—์„œ APCu๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์ • ํŽ˜์ด์ง€์—์„œ ํ™œ์„ฑํ™”ํ•˜๋Š” ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ์ˆ˜๋™์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. wp-config.php ํŒŒ์ผ์— WP_SQLITE_OBJECT_CACHE_APCU ๊ฐ’์„ true๋กœ ๋„ฃ์œผ์‹ญ์‹œ์˜ค. ๋‹ค์Œ WP-CLI ๋ช…๋ น์œผ๋กœ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

wp config set --raw WP_SQLITE_OBJECT_CACHE_APCU true

๋˜๋Š” ์ด ์ค„์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด wp-config.php ํŒŒ์ผ์„ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

define( 'WP_SQLITE_OBJECT_CACHE_APCU', true );

FAQ

์ด๊ฒƒ์€ ๋ฉ€ํ‹ฐ์‚ฌ์ดํŠธ ์›Œ๋“œํ”„๋ ˆ์Šค ์„ค์น˜์—์„œ ์ž‘๋™ํ•˜๋‚˜์š”?

์˜ˆ. ๋ฉ€ํ‹ฐ์‚ฌ์ดํŠธ ์„ค์น˜์˜ ์ฒซ ๋ฒˆ์งธ ์‚ฌ์ดํŠธ๋‚˜ ๋ชจ๋“  ์‚ฌ์ดํŠธ์—์„œ ์„ค์ • > ์˜ค๋ธŒ์ ํŠธ ์บ์‹œ๋ฅผ ์„ ํƒํ•˜๋ฉด ์„ค์ • ํŽ˜์ด์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์œผ๋กœ ์ œ ์‚ฌ์ดํŠธ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋” ๋นจ๋ผ์ง€๋‚˜์š”?

๊ฐ ์‚ฌ์ดํŠธ์˜ ์†๋„ ํ–ฅ์ƒ์„ ์ •ํ™•ํžˆ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋‹ค๋ฅธ ์˜ค๋ธŒ์ ํŠธ ์บ์‹ฑ ๋ฐฉ์‹๊ณผ ๋น„๊ตํ•œ ๋ฒค์น˜๋งˆํฌ ๊ฒฐ๊ณผ๋Š” ์œ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ๋ฒค์น˜๋งˆํฌ๋ฅผ ์‹คํ–‰ํ•˜์‹œ๋ฉด ๊ทธ ํŽ˜์ด์ง€์— ๋Œ“๊ธ€์„ ๋‚จ๊ธฐ๊ฑฐ๋‚˜ ์ง€์› ํฌ๋Ÿผ์„ ์ด์šฉํ•ด ์ž‘์„ฑ์ž์—๊ฒŒ ์•Œ๋ ค ์ฃผ์„ธ์š”.

๋‚ด ์‚ฌ์ดํŠธ์— ๋Œ€ํ•ด ์–ด๋–ค ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋‚˜์š”?

์บ์‹œ๋œ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ์˜ ๊ธฐ๋ณธ๊ฐ’ ์„ค์ •์€ 16๋ฉ”๊ฐ€๋ฐ”์ดํŠธ(MiB)์ž…๋‹ˆ๋‹ค. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์‹ค์ œ ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ ํ•ด๋‹น ๊ฐ’๋ณด๋‹ค ์ปค์ง€๋„๋ก ํ—ˆ์šฉํ•˜๋ฉฐ, ๋•Œ๋•Œ๋กœ ํฌ๊ธฐ๋ฅผ ์„ค์ • ๊ฐ’์œผ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด ์˜ค๋ž˜๋œ โ€” ๊ฐ€์žฅ ์ตœ๊ทผ์— ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์€ โ€” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ํ†ต๊ณ„ ํŽ˜์ด์ง€๋ฅผ ํ™•์ธํ•˜์„ธ์š”. ๋ชจ๋“  ๊ทธ๋ฃน ์•„๋ž˜์˜ ์‹ค์ œ ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ๋Ÿ‰์ด ์ง€์†์ ์œผ๋กœ ์„ค์ • ๊ฐ’๋ณด๋‹ค ํฌ๋ฉด ์„ค์ • ๊ฐ’์„ ๋‘ ๋ฐฐ๋กœ ๋Š˜๋ฆฌ์„ธ์š”.

ํ™œ๋ฐœํ•˜๊ณ  ๋Œ€ํ˜• ์‚ฌ์ดํŠธ๋ฅผ ์šด์˜ํ•œ๋‹ค๋ฉด ์ดˆ๊ธฐ ์„ค์ •์„ 32 MiB๋กœ ์‹œ๋„ํ•œ ํ›„ ์‹ค์ œ ์šฉ๋Ÿ‰ ์ฆ๊ฐ€์— ๋”ฐ๋ผ ์กฐ์ •ํ•˜์„ธ์š”.

์ด ์„ค์ •์€ ์บ์‹œ ๋‚ด ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๋ฅผ ์ œ์–ดํ•œ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค. ์ฆ‰, ๊ทธ๊ฒƒ์€ ๋ชจ๋“  ๊ทธ๋ฃน ์•„๋ž˜์— ํ‘œ์‹œ๋˜๋Š” ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค. SQLite์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ผ์€ ๊ทธ๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค.

SQLite๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

SQLite๋Š” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ์„œ๋ฒ„๋ฅผ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  SQLite3 ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด PHP์— ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. SQLite ํ”„๋กœ๊ทธ๋žจ์€ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ์—ด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

igbinary๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

igbinary๋Š” ์บ์‹œ์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ฐ์ฒด๋“ค์„ ์ง๋ ฌํ™”ํ•˜๊ณ  ์••์ถ•ํ•˜๋Š” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” php ํ™•์žฅ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋‚ด์žฅ๋œ php ๋ฐ์ดํ„ฐ serializer๋ณด๋‹ค ์ ˆ๋ฐ˜ ์ดํ•˜์˜ ์ €์žฅ ๊ณต๊ฐ„๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. php ์„ค์ •์—์„œ igbinary๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, wp-config.php์—์„œ WP_SQLITE_OBJECT_CACHE_SERIALIZE๋ฅผ true๋กœ ์„ค์ •ํ•ด ๊ฐ•์ œ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ํ•˜์ง€ ์•Š๋Š” ํ•œ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

APCu๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

APCu๋Š” ์ธ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ ๋งค์ฒด๋ฅผ ์ œ๊ณตํ•˜๋Š” PHP ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ตฌ์„ฑํ•˜์—ฌ ์บ์‹œ ์กฐํšŒ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ์„œ๋ฒ„์—์„œ APCu ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์บ์‹œ๊ฐ€ ๋„ˆ๋ฌด ์ž‘์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๋” ํฌ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‚˜์š”?

๋Œ€๋ถ€๋ถ„์˜ ์šด์˜์ฒด์ œ์—์„œ APCu ์บ์‹œ์˜ ๊ธฐ๋ณธ ํฌ๊ธฐ๋Š” ์„ค์น˜ ์‹œ 32MiB์ž…๋‹ˆ๋‹ค. ์ด ํฌ๊ธฐ๋ฅผ ๋Š˜๋ ค์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ php.ini ํŒŒ์ผ์— apc.shm_size ์„ค์ • ์˜ต์…˜์„ ์ง€์ •ํ•˜๋Š” ํ•œ ์ค„์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด apc.shm_size = 64M ๋ผ์ธ์€ ํฌ๊ธฐ๋ฅผ 64MiB๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—… ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” ์šด์˜์ฒด์ œ ๋˜๋Š” ํ˜ธ์ŠคํŒ… ๊ณต๊ธ‰์—…์ฒด ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋•Œ๋•Œ๋กœ ๋™์ผํ•œ ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜๋Š” ์—ฌ๋Ÿฌ ์›Œ๋“œํ”„๋ ˆ์Šค ์„ค์น˜๊ฐ€ ๋™์ผํ•œ APCu ์บ์‹œ๋ฅผ ๊ณต์œ ํ•˜๋ฏ€๋กœ ์ด๋“ค ๋ชจ๋‘๋ฅผ ์œ„ํ•ด ์ถฉ๋ถ„ํ•œ ๊ณต๊ฐ„์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ž‘์—… ๊ฐ€์†์„ ์œ„ํ•ด์„œ๋งŒ APCu๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์บ์‹œ ํฌ๊ธฐ๋ฅผ ๋„ˆ๋ฌด ์ž‘๊ฒŒ ์„ค์ •ํ–ˆ์„ ๋•Œ์˜ ์˜ํ–ฅ์€ ํฌ์ง€ ์•Š์Œ์„ ์—ผ๋‘์— ๋‘์„ธ์š”.

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด MariaDB๋‚˜ MySQL์„ SQLite๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๊นŒ?

์•„๋‹ˆ์š”. ๊ท€ํ•˜์˜ MariaDB ๋˜๋Š” MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค sql ์„œ๋ฒ„๋Š” ์—ฌ์ „ํžˆ ๋ชจ๋“  ์ฝ˜ํ…์ธ ๋ฅผ ๋ณด๊ด€ํ•ฉ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๋ชจ๋“  ์‚ฌ์ดํŠธ์˜ ๊ฐ€์ ธ์˜ค๊ธฐ, ๋‚ด๋ณด๋‚ด๊ธฐ, ๋ฐฑ์—… ๋ฐ ๊ธฐํƒ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์€ ๊ณ„์† ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๋‹จ์ˆœํžˆ ๋ช…๋ช…๋œ ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด SQLite๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด โ€œ๊ธ€|3โ€ณ์ด๋ผ๋Š” ์ด๋ฆ„์˜ ๊ฐ’์€ 3๋ฒˆ ๊ธ€์˜ ์ž„์‹œ๋กœ ์‰ฝ๊ฒŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ์บ์‹œ ๋ณต์‚ฌ๋ณธ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•  ๋•Œ ์›Œ๋“œํ”„๋ ˆ์Šค๋Š” ํ•ด๋‹น ๊ธ€์„ SQLite์—์„œ ๋น ๋ฅด๊ฒŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž ๊น, ๋ญ๋ผ๊ณ ? ์ •๋ง ์„œ๋กœ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‘ ๊ฐœ๊ฐ€ ํ•„์š”ํ•œ๊ฐ€์š”?

์•„๋‹ˆ์š”, ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ SQLite๋ฅผ ์ •์‹ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ง€์†์  ์˜ค๋ธŒ์ ํŠธ ์บ์‹œ๋Š” ์–ด๋–ค ํ˜•ํƒœ์˜ ์ €์žฅ ๋งค์ปค๋‹ˆ์ฆ˜์„ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค. SQLite๋Š” ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋น ๋ฅด๊ณ  ๊ฐ„๋‹จํ•œ ํ‚ค/๊ฐ’ ์ €์žฅ ๋งค์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ถ€ ํ˜ธ์ŠคํŒ… ๊ณต๊ธ‰์—…์ฒด๋Š” ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๊ณ ์„ฑ๋Šฅ redis ์บ์‹œ ์„œ๋ฒ„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Redis Object Cache ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ์ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. redis๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์ดํŠธ๋Š” ํ•˜๋‚˜์˜ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋‹ค๋ฅธ ๋น„SQL ์ €์žฅ ๋ฐฉ์‹์ธ redis๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŒ… ๊ณต๊ธ‰์—…์ฒด๋Š” memcached๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ์ด๋Š” Memcached Object Cache๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋งŽ์€ ํ˜ธ์ŠคํŒ… ๊ณต๊ธ‰์—…์ฒด๋Š” redis๋‚˜ memcached๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ๋ฐ˜๋ฉด SQLite๋Š” ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๋ณ„๋„์˜ ์บ์‹œ ์„œ๋ฒ„ ์—†์ด๋„ ์‚ฌ์ดํŠธ๊ฐ€ ์˜๊ตฌ ๊ฐ์ฒด ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  ์ฒ˜๋ฆฌ๊ฐ€ ์›น ์„œ๋ฒ„ ๋‚ด์—์„œ ์ด๋ฃจ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ œ ํŽ˜์ด์ง€ ์บ์‹ฑ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ํ˜ธํ™˜๋˜๋‚˜์š”?

์•„๋งˆ๋„. ํŽ˜์ด์ง€ ์บ์‹ฑ๊ณผ ์˜์† ๊ฐ์ฒด ์บ์‹ฑ์€ ์›Œ๋“œํ”„๋ ˆ์Šค์—์„œ ์™„์ „ํžˆ ๋ณ„๊ฐœ์˜ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ผ๋ถ€ ๋‹ค๊ธฐ๋Šฅ ์บ์‹ฑ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ Redis๋‚˜ Memcached๋ฅผ ์‚ฌ์šฉํ•œ ์„ ํƒ์  ๊ฐ์ฒด ์บ์‹ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ์บ์‹œ ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋‹ค๋ฉด, ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

ํŽ˜์ด์ง€ ์บ์‹œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์˜์† ๊ฐ์ฒด ์บ์‹ฑ(persistent object caching)๋„ ํ™œ์„ฑํ™”ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ ํŽ˜์ด์ง€์˜ Drop-in ์„น์…˜์„ ๋ณด์„ธ์š”. โ€œobject-cache.phpโ€๋ผ๋Š” ๋“œ๋กญ์ธ(drop-in)์ด ์–ธ๊ธ‰๋˜์–ด ์žˆ์œผ๋ฉด ํ•ด๋‹น ํŽ˜์ด์ง€ ์บ์‹œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์˜์† ๊ฐ์ฒด ์บ์‹ฑ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ์ž๋Š” WP Rocket, LiteSpeed Cache, WP Total Cache, WP Super Cache, WP Fastest Cache์™€ ์ž˜ ์ž‘๋™ํ•œ๋‹ค๊ณ  ๋ณด๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Cloudflare ๋ฐ ๊ธฐํƒ€ ์ฝ˜ํ…์ธ  ์ „์†ก ๋„คํŠธ์›Œํฌ์™€๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ž‘์„ฑ์ž๋Š” ์ด ์˜์—ญ์—์„œ์˜ ๋ถˆํ˜ธํ™˜์„ฑ์„ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. (๋งŒ์•ฝ ๋ฐœ๊ฒฌํ•˜์‹œ๋ฉด ์ œ๋ฐœ ์ง€์› ํฌ๋Ÿผ์— ๊ธ€์„ ์˜ฌ๋ ค ์ฃผ์„ธ์š”!)

๋‚ด ๋ฐฑ์—”๋“œ ๋Œ€์‹œ๋ณด๋“œ๋‚˜ ์„ ํƒํ•œ ๋‹ค๋ฅธ ํŽ˜์ด์ง€ ๋˜๋Š” REST API ์ž‘์—…์— ๋Œ€ํ•ด ๊ฐ์ฒด ์บ์‹ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

๋ฒˆํ˜ธ

๊ทธ๊ฑด ๊ฐ์ฒด ์บ์‹ฑ์˜ ์ž‘๋™ ๋ฐฉ์‹์ด ์•„๋‹™๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ์บ์‹ฑ๊ณผ๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ฐ์ฒด ์บ์‹ฑ์€ ์ „์ฒด ํŽ˜์ด์ง€ ์ˆ˜์ค€์ด ์•„๋‹ˆ๋ผ ์›Œ๋“œํ”„๋ ˆ์Šค ์ฝ”๋“œ ๋‚ด ๊ฐœ๋ณ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—… ์ˆ˜์ค€์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ œ MySQL ๋˜๋Š” MariaDB ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜๋‚˜์š”?

์˜ˆ. ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„ ๋ฒ„์ „์„ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์˜๊ตฌ ๊ฐ์ฒด ์บ์‹œ๋Š” Redis๋‚˜ memcached๋ณด๋‹ค ๋” ๋น ๋ฅธ๊ฐ€์š”?

์˜ˆ. ํ•ด๋‹น ์บ์‹œ ์„œ๋ฒ„๋“ค์€ ์›Œ๋“œํ”„๋ ˆ์Šค๊ฐ€ ์™•๋ณต ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ํ•˜๋„๋ก ์š”๊ตฌํ•˜๋Š” ๋ฐ˜๋ฉด, ์ด ์„œ๋ฒ„๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์‚ฌ์šฉ์ž๋“ค์ด ์ด ์บ์‹ฑ ๋ฐฉ๋ฒ•์ด ๋น ๋ฅด๋‹ค๊ณ  ๋А๊ผˆ์Šต๋‹ˆ๋‹ค.

์ด ์บ์‹œ๋Š” ๋‚ด ์„œ๋ฒ„ HDD/SSD์˜ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ , redis์™€ memcached๋Š” RAM์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. RAM์ด ๋” ๋น ๋ฅด์ง€ ์•Š๋‚˜์š”?

RAM์€ ํ™•์‹คํžˆ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค. ์ตœ์‹  ์„œ๋ฒ„ ์šด์˜์ฒด์ œ๋Š” ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ด‘๋ฒ”์œ„ํ•œ ํŽ˜์ด์ง€ ์บ์‹ฑ์„ ์ œ๊ณตํ•˜๋ฉฐ, SQLite๋Š” ์ด๋ฅผ ํ™œ์šฉํ•˜๋„๋ก ์„ค๊ณ„๋˜์–ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ RAM์— ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ์บ์‹œ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›น ์„œ๋ฒ„๊ฐ€ ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜์ง€๋งŒ, SQLite๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‚ฌ์ดํŠธ์˜ ๋ฉ”์ธ MariaDB ๋˜๋Š” MySql ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋ฅผ ์˜ค๋ธŒ์ ํŠธ ์บ์‹œ์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

์›Œ๋“œํ”„๋ ˆ์Šค์—์„œ, ๋งŽ์€ ์›น ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋Š” ์„ฑ๋Šฅ ๋ณ‘๋ชฉ์ž…๋‹ˆ๋‹ค. ์˜ค๋ธŒ์ ํŠธ ์บ์‹œ์— ๋‹ค๋ฅธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…๋Ÿ‰์„ ๋Š˜๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์›น ์„œ๋ฒ„๋Š” ์—ฌ๋Ÿฌ PHP ํ”„๋กœ์„ธ์Šค๋กœ ํŽ˜์ด์ง€๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๊ณต์œ ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•˜๋ฉด์„œ ์ž์ฒด์ ์ธ SQLite ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์˜ค๋ธŒ์ ํŠธ ์บ์‹œ ์ž‘์—…๋Ÿ‰์ด ์ค‘์•™์ง‘์ค‘ํ™”๋˜์ง€ ์•Š๊ณ  ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์— ๋ถ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.

SQLite์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฑ์—…ํ•ด์•ผ ํ•˜๋‚˜์š”?

์•„๋‹ˆ์š”. ์บ์‹œ์ผ ๋ฟ์ด๋ฉฐ ๊ทธ ์•ˆ์˜ ๋ชจ๋“  ๊ฒƒ์€ ์ผ์‹œ์ ์ž…๋‹ˆ๋‹ค. ์›Œ๋“œํ”„๋ ˆ์Šค๊ฐ€ ์บ์‹œ์—์„œ ํ•„์š”ํ•œ ํ•ญ๋ชฉ์„ ์ฐพ์ง€ ๋ชปํ•˜๋ฉด ๋‹จ์ˆœํžˆ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋‹ค์‹œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

SQLite ํŒŒ์ผ์„ ๋ฐฑ์—…ํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด ๋ฐฑ์—… ํ”Œ๋Ÿฌ๊ทธ์ธ์— *.sqlite, *.sqlite-wal, *.sqlite-wal2, *.sqlite-shm ํŒŒ์ผ์„ ๊ฑด๋„ˆ๋›ฐ๋„๋ก ์ง€์‹œํ•˜์„ธ์š”.

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ Updraft Plus, BackWPUp, ๋˜๋Š” WP STAGING ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•  ๋•Œ SQLite ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ๋ฐฑ์—…์—์„œ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. Duplicator ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ํ•ด๋‹น ํŒŒ์ผ๋“ค์˜ ๋ณต์‚ฌ๋ฅผ ์ž๋™์œผ๋กœ ์ œ์™ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ฐฑ์—… ๋˜๋Š” ํด๋กœ๋‹ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉ ์ค‘์ด๋ผ๋ฉด ์ง€์› ํ† ํ”ฝ์„ ์ƒ์„ฑํ•˜์—ฌ ์ž‘์„ฑ์ž์—๊ฒŒ ์•Œ๋ ค ์ฃผ์„ธ์š”. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํ•ด๋‹น ํ”Œ๋Ÿฌ๊ทธ์ธ์—๊ฒŒ SQLite ํŒŒ์ผ ๋ฐฑ์—…์„ ๊ฑด๋„ˆ๋›ฐ๋„๋ก ์ง€์‹œํ•  ์ˆ˜ ์žˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ ๋‹ค๋ฅธ ์ง€์†์„ฑ ๊ฐ์ฒด ์บ์‹œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

์•„๋‹ˆ์š”. ์ง€์†์ ์ธ ์˜ค๋ธŒ์ ํŠธ ์บ์‹œ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ํ•˜๋‚˜๋งŒ ํ•„์š”ํ•˜๋ฉฐ, ์›Œ๋“œํ”„๋ ˆ์Šค๋Š” ํ•˜๋‚˜๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

ํ™•์žฅ๋œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ ์„ค์น˜๋ฅผ ์šด์˜ํ•˜๋Š” ๊ฒฝ์šฐ, ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์›น ์„œ๋ฒ„๊ฐ€ ํ•˜๋‚˜๋ณด๋‹ค ๋งŽ์€ ๊ฒฝ์šฐ์—๋Š” ์ด๊ฒƒ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ ์ •๋„ ๊ทœ๋ชจ๋กœ ์šด์˜ํ•œ๋‹ค๋ฉด Redis๋‚˜ ๋‹ค๋ฅธ ์บ์‹œ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. (๋ถ€ํ•˜ ๋ถ„์‚ฐ ์„ค์น˜์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š๋‹ค๋ฉด, ๊ฑฐ์˜ ํ™•์‹คํžˆ ์•„๋‹™๋‹ˆ๋‹ค.)

SQLite ํŒŒ์ผ์„ CIFS, SMB, NFS ๋˜๋Š” ๊ธฐํƒ€ ๋“œ๋ผ์ด๋ธŒ ๊ณต์œ  ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ๊ณต์œ  ๋„คํŠธ์›Œํฌ ๋“œ๋ผ์ด๋ธŒ์— ๋‘๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ Performance Lab ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

์˜ˆ, ๊ทธ๋ ‡์ง€๋งŒ ๋จผ์ € ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ™œ์„ฑํ™”ํ•œ ๋‹ค์Œ Performance Lab๋ฅผ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋งˆ์ง€๋ง‰์œผ๋กœ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์ „์— ๋ฐ˜๋“œ์‹œ Performance Lab์„ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Performance Lab ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์‚ฌ์ดํŠธ๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ๋งŒ๋“œ๋Š” ๋ช‡ ๊ฐ€์ง€ ๊ณ ๊ธ‰ ๋ฐ ์‹คํ—˜์  ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋Š” ์„ฑ๋Šฅ ์ถ”์ ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ์ฒด ์บ์‹œ ์ดˆ๊ธฐํ™” ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‘˜ ๋‹ค ์ž‘๋™ํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ํ™œ์„ฑํ™” ์ˆœ์„œ๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

์ด ๊ฐ์ฒด ์บ์‹œ๋ฅผ ์ œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๋‚˜ ํ…Œ๋งˆ ์ฝ”๋“œ์—์„œ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•ด์„œ ๋” ๋น ๋ฅด๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์บ์‹œ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ ค๋ฉด ์ž„์‹œ ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ์›Œ๋“œํ”„๋ ˆ์Šค์˜ Transient API๋Š” ์˜๊ตฌ ๊ฐ์ฒด ์บ์‹œ๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ MariaDB๋‚˜ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Metadata API์™€ Options API๋„ ์˜๊ตฌ ๊ฐ์ฒด ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฑด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋‚˜์š”?

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ WP_Cache ํด๋ž˜์Šค์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๊ธฐ ์œ„ํ•ด WordPress ๋“œ๋กญ์ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋“œ๋กญ์ธ ํŒŒ์ผ .../wp-content/object-cache.php๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋น„ํ™œ์„ฑํ™” ์‹œ ํ•ด๋‹น ํŒŒ์ผ๊ณผ ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋””์— ์ €์žฅํ•˜๋‚˜์š”?

ํ•ด๋‹น ํŒŒ์ผ์€ ์‚ฌ์ดํŠธ์˜ wp_content ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ์œผ๋ฉฐ ํŒŒ์ผ๋ช…์€ .ht.object-cache.sqlite์ž…๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ๋ช…์— .ht. ์ ‘๋‘์–ด๊ฐ€ ๋ถ™์€ ๊ฒƒ์€ ์›น ์„œ๋ฒ„๊ฐ€ ํ•ด๋‹น ํŒŒ์ผ์˜ ๋‹ค์šด๋กœ๋“œ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋„๋ก ํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค. SQLite๋Š” ๋•Œ๋•Œ๋กœ .ht.object-cache.sqlite-shm ๋ฐ .ht.object-cache.sqlite-wal๋ผ๋Š” ํŒŒ์ผ๋„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ด๋“ค ํŒŒ์ผ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํŒŒ์ผ์„ ๋‹ค๋ฅธ ์œ„์น˜์— ๋‘๊ฒŒ ํ•˜๋ ค๋ฉด ์›ํ•˜๋Š” ๊ฒฝ๋กœ๋ช…์„ wp-config.php์˜ WP_SQLITE_OBJECT_CACHE_DB_FILE์— ๋„ฃ์œผ์„ธ์š”.

Linux ๋ฐ ๊ธฐํƒ€ UNIX ๊ณ„์—ด ์šด์˜์ฒด์ œ์—์„œ๋Š” ์ด๋ฆ„์ด ์ (.)์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํŒŒ์ผ์„ ๋ณด๋ ค๋ฉด ls -a ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋” ์•ˆ์ „ํ•œ ์žฅ์†Œ์— ์ €์žฅํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๋ ๊นŒ์š”?

.sqlite ํŒŒ์ผ์„ ์‚ฌ์ดํŠธ์˜ ๋ฌธ์„œ ๋ฃจํŠธ ๋ฐ–์— ๋‘๋Š” ๊ฒƒ์€ ์ข‹์€ ๋ณด์•ˆ ๊ด€ํ–‰์ž…๋‹ˆ๋‹ค. ์„ค์ • ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. WP_SQLITE_OBJECT_CACHE_DB_FILE ์ƒ์ˆ˜๋ฅผ wp_config.php์— ์ •์˜ํ•˜๋ฉด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๋Œ€์‹  ํ•ด๋‹น ๊ฐ’์„ sqlite ํŒŒ์ผ ๊ฒฝ๋กœ๋ช…์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด wp-config.php์— ๋‹ค์Œ ์ค„์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋ฉด

define( 'WP_SQLITE_OBJECT_CACHE_DB_FILE', '/tmp/mysite-object-cache.sqlite' );

๊ท€ํ•˜์˜ ๊ฐ์ฒด ์บ์‹œ ๋ฐ์ดํ„ฐ๋Š” /tmp ํด๋”์˜ mysite-object-cache.sqlite๋ผ๋Š” ํŒŒ์ผ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถ”์ธกํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ž์—ด๋กœ WP_CACHE_KEY_SALT ๋ฅผ ์ •์˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ์ด ์ค„์€

define( 'WP_CACHE_KEY_SALT', 'qrstuv' );

๊ท€ํ•˜์˜ ๊ฐ์ฒด ์บ์‹œ ๋ฐ์ดํ„ฐ๊ฐ€ /tmp ํด๋”์˜ mysite-object-cache.qrstuv.sqlite๋ผ๋Š” ํŒŒ์ผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด SQLite ๋ฉ”๋ชจ๋ฆฌ ๋งต I/O๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ. ์šด์˜์ฒด์ œ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋งต ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ SQLite ๋ฉ”๋ชจ๋ฆฌ-๋งต I/O๋กœ ์บ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•˜๊ณ  ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ์„œ๋ฒ„ ๊ตฌ์„ฑ์—์„œ๋Š” ์ด๊ฒƒ์ด ์—ฌ๋Ÿฌ PHP ํ”„๋กœ์„ธ์Šค๊ฐ€ ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ๊ณต์œ ํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ ์•ˆ ํ•จ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋ฉ”๋ชจ๋ฆฌ ๋งต์œผ๋กœ ์‚ฌ์šฉํ•  MiB ์ˆ˜๋ฅผ ์•Œ๋ ค ์ฃผ์–ด ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด wp-config ์„ค์ •์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด 32MiB๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.

define( 'WP_SQLITE_OBJECT_CACHE_MMAP_SIZE', 32 );

๋ฉ”๋ชจ๋ฆฌ ๋งคํ•‘ I/O๋ฅผ ์‚ฌ์šฉํ•ด๋„ ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์€ ์›น ์„œ๋ฒ„์˜ ๋†’์€ ๋™์‹œ์„ฑ ํ™˜๊ฒฝ์—์„œ๋Š” ์„ฑ๋Šฅ์— ๋„์›€์ด ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์„ธ์š”. ๊ทธ๋ž˜์„œ ์ด๊ฒƒ์€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ๋งคํ•‘์€ APCu ์บ์‹œ์™€ ๋™์ผํ•œ ๊ฒƒ์ด ์•„๋‹˜์„ ์œ ์˜ํ•˜์„ธ์š”.

๊ฐ€๋” SQLite์—์„œ ํƒ€์ž„์•„์›ƒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

์ผ๋ถ€ ์‚ฌ์ดํŠธ๋Š” ๊ฐ€๋” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค:

Unable to execute statement: database is locked in /var/www/wp-content/object-cache.php:1234

์ด ๋ฌธ์ œ๋Š” ๊ท€ํ•˜์˜ ์„œ๋ฒ„๊ฐ€ ์›Œ๋“œํ”„๋ ˆ์Šค ํŒŒ์ผ์„ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ์Šคํ† ๋ฆฌ์ง€(์ฆ‰, ๋„คํŠธ์›Œํฌ ๋“œ๋ผ์ด๋ธŒ)์— ๋‘๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ์ปฌ์— ์—ฐ๊ฒฐ๋œ ๋“œ๋ผ์ด๋ธŒ์— ์ €์žฅํ•˜์„ธ์š”. ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‹ค ์•ˆ์ „ํ•œ ์žฅ์†Œ์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ๋งค์šฐ ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์€ ์‚ฌ์ดํŠธ์—์„œ๋„ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํƒ€์ž„์•„์›ƒ ์˜ค๋ฅ˜๋Š” ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ ๋˜๋Š” ์‚ฌ์ดํŠธ๊ฐ€ ๋งค์šฐ ํฐ ๊ฒฝ์šฐ์—๋„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋ฅผ ์ค„์—ฌ ๋ณด์„ธ์š”. ๊ทธ๋ž˜๋„ ํƒ€์ž„์•„์›ƒ ์˜ค๋ฅ˜๊ฐ€ ์‚ฌ๋ผ์ง€์ง€ ์•Š์œผ๋ฉด wp-config.php ํŒŒ์ผ์—์„œ WP_SQLITE_OBJECT_CACHE_TIMEOUT ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ธฐ๋ณธ๊ฐ’์ธ 5000๋ฐ€๋ฆฌ์ดˆ๋ณด๋‹ค ํฐ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•ด ๋ณด์„ธ์š”.

WP-CLI๋กœ ๋‚ด ์‚ฌ์ดํŠธ๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ ์™œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋‚˜์š”?

๋•Œ๋•Œ๋กœ WP-CLI๊ฐ€ ์‰˜์—์„œ ์‹คํ–‰๋  ๋•Œ ์›น ์„œ๋ฒ„์™€ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ฐ์ฒด-์บ์‹œ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด-์บ์‹œ ํŒŒ์ผ์€ wp-cli ์‚ฌ์šฉ์ž๊ฐ€ ์ƒ์„ฑํ•œ ๊ฒฝ์šฐ ์›น ์„œ๋ฒ„์—์„œ ์ฝ๊ฑฐ๋‚˜ ์“ธ ์ˆ˜ ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ๊ทธ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Linux์—์„œ WP-CLI ์…ธ ๋ช…๋ น์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: sudo -u www-data wp config list ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์›น ์„œ๋ฒ„์™€ ๋™์ผํ•œ ์‚ฌ์šฉ์ž๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ IIS ์›น ์„œ๋ฒ„๊ฐ€ ์„ค์น˜๋œ Microsoft Windows ์šด์˜์ฒด์ œ์—์„œ ํ˜ธ์ŠคํŒ…๋˜๋Š” ์‚ฌ์ดํŠธ์—์„œ ์ž‘๋™ํ•˜๋‚˜์š”?

์˜ˆ. ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ APCu ์‚ฌ์šฉ ์‹œ ์บ์‹œ ์†์ƒ(corruption)์ด ๋ณด๊ณ ๋˜์—ˆ๋‹ค๋Š” ์ ์„ ์œ ์˜ํ•ด ์ฃผ์‹ญ์‹œ์˜ค. ๊ทธ๋ฆฌ๊ณ  PHP ์‹คํ–‰ ํŒŒ์ผ๊ณผ DLL์€ ์ด๋ฅธ๋ฐ” โ€˜๋น„ ์Šค๋ ˆ๋“œ ์•ˆ์ „(non thread safe)โ€™ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

ํ†ต๊ณ„ ํ‘œ์‹œ๊ฐ€ ๋ณต์žกํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ฒƒ์ด ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋‚˜์š”?

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์บ์‹œ์—์„œ ํ•ญ๋ชฉ์„ ์กฐํšŒํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„๊ณผ ๊ฐ™์€ ๊ฐœ๋ณ„ ์ž‘์—…์„ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ์ธก์ •๊ฐ’๋“ค์„ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. ํ†ต๊ณ„ ๋ณด์ด๋‹ค๋Š” ์ด๋“ค์„ ๋ถ„์„ํ•˜์—ฌ ๊ฐ€์žฅ ๋น ๋ฅธ ์ž‘์—…๊ณผ ๊ฐ€์žฅ ๋А๋ฆฐ ์ž‘์—…, ํ‰๊ท  ์ž‘์—… ๋ฐ ๊ธฐํƒ€ ๊ธฐ์ˆ  ํ†ต๊ณ„๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
์ž์„ธํ•œ ์ •๋ณด๋Š” ์—ฌ๊ธฐ๋ฅผ ์ฝ์–ด ์ฃผ์„ธ์š”.

์ด๊ฑฐ ์–ด๋”˜๊ฐ€์— ๋†๋‹ด์ด๋ผ๋„ ์„ž์—ฌ ์žˆ๋‚˜์š”?

Q: ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ ์ •ํ™•ํžˆ ๋งž์ถ”๊ธฐ ๊ฐ€์žฅ ์–ด๋ ค์šด ๋‘ ๊ฐ€์ง€๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

  1. ํ•ญ๋ชฉ ์บ์‹ฑ.
  2. ์ด๋ฆ„ ๋ถ™์ด๊ธฐ.
  3. ์ธ๋ฑ์Šค๊ฐ€ ํ•˜๋‚˜์”ฉ ์–ด๊ธ‹๋‚˜๋Š” ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

์ง„์ง€ํ•˜๊ฒŒ ๋งํ•˜๋ฉด, ์›Œ๋“œํ”„๋ ˆ์Šค ์ฝ”์–ด๋Š” ์ˆ˜๋…„์˜ ๊ฐœ๋ฐœ๊ณผ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ์‚ฌ์ดํŠธ๋ฅผ ํ†ตํ•ด ์ด๋ฏธ ํ•ญ๋ชฉ์„ ์บ์‹œํ•˜๊ณ  ์ด๋ฆ„์„ ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ™•๋ฆฝํ•ด ์™”์Šต๋‹ˆ๋‹ค. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ๋‹ค๋ฅธ ์˜๊ตฌ ๊ฐ์ฒด ์บ์‹œ ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์€ ๋‹จ์ง€ ๊ทธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ™•์žฅํ•˜์—ฌ ํ•ด๋‹น ํ•ญ๋ชฉ๋“ค์„ ์˜๊ตฌํ™”ํ•  ๋ฟ์ž…๋‹ˆ๋‹ค.

์งˆ๋ฌธ์ด ํ•˜๋‚˜ ๋” ์žˆ์Šต๋‹ˆ๋‹ค

๋” ๋งŽ์€ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์€ ์—ฌ๊ธฐ๋ฅผ ํ™•์ธํ•˜์„ธ์š”. ๋˜๋Š” ์ง€์› ํฌ๋Ÿผ์—์„œ ์งˆ๋ฌธํ•˜์„ธ์š”. ์ง€์› ํฌ๋Ÿผ์— ๊ธ€์„ ์˜ฌ๋ฆฌ์‹ค ๊ฒฝ์šฐ, ๋„๊ตฌ์‚ฌ์ดํŠธ ์ƒํƒœ์ •๋ณด๋กœ ๊ฐ€์…”์„œ ๊ฑฐ๊ธฐ์„œ ์‚ฌ์ดํŠธ ์ •๋ณด๋ฅผ ๋ณต์‚ฌํ•ด ์ง€์› ๊ธ€์— ๋ถ™์—ฌ๋„ฃ์–ด ์ฃผ์„ธ์š”.

ํ›„๊ธฐ

2026๋…„ 2์›” 7์ผ
My web hosting service supports it; after installing and enabling the plugin, the speed became extremely fast. Thank you. ex: WooCommerce shop.
2026๋…„ 1์›” 29์ผ
Make sure you have APCu User Cache and igbinary on your server / host for the bestest outta this
2026๋…„ 1์›” 6์ผ
Thank you for creating this plugin, easy install, back-end of WP is noticeably faster.
2025๋…„ 8์›” 16์ผ ๋‹ต๊ธ€ 2๊ฐœ
Just spent some time comparing reading/writing times against Redis and I can tell itโ€™s way faster. And combining with APCu even faster. I was concern about SQLite ability to write simultaneously on multiple threads so I tested it on 6core VPS with writing on 24 simultaneous requests. All data was written, no errors been recorded. Will use it instead of Redis from now. Thank you for a well developed plugin!
๋ชจ๋“  49 ํ‰๊ฐ€ ์ฝ๊ธฐ

๊ธฐ์—ฌ์ž & ๊ฐœ๋ฐœ์ž

โ€œSQLite ๊ฐ์ฒด ์บ์‹œโ€(์€)๋Š” ์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์˜ ์‚ฌ๋žŒ๋“ค์ด ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๊ธฐ์—ฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ธฐ์—ฌ์ž

โ€œSQLite ๊ฐ์ฒด ์บ์‹œโ€(์ด)๊ฐ€ 4 ๊ฐœ ์–ธ์–ด๋กœ ๋ฒˆ์—ญ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์—ฌํ•ด ์ฃผ์…”์„œ ๋ฒˆ์—ญ์ž๋‹˜๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ž๊ตญ์–ด๋กœ โ€œSQLite ๊ฐ์ฒด ์บ์‹œโ€(์„)๋ฅผ ๋ฒˆ์—ญํ•˜์„ธ์š”.

๊ฐœ๋ฐœ์— ๊ด€์‹ฌ์ด ์žˆ์œผ์‹ญ๋‹ˆ๊นŒ?

์ฝ”๋“œ ํƒ์ƒ‰ํ•˜๊ธฐ๋Š”, SVN ์ €์žฅ์†Œ๋ฅผ ํ™•์ธํ•˜์‹œ๊ฑฐ๋‚˜, ๊ฐœ๋ฐœ ๊ธฐ๋ก์„ RSS๋กœ ๊ตฌ๋…ํ•˜์„ธ์š”.

๋ณ€๊ฒฝ์ด๋ ฅ

1.6.3

A race condition caused expired cache entries to be copied to APCu incorrectly sometimes. This is corrected. Props to @pobrehablador for finding this defect.

1.6.2

  • Use PRAGMA wal_checkpoint(TRUNCATE) sometimes to avoid excessively large re-used WAL files.
  • Checkpoint more frequently.
  • Health check for OPcache (not APCu) RAM exhaustion.

1.6.1

  • Add an optional Flush Object Cache button to the admin bar. Props to Nick Chomey.
  • Fix a defect in testing for writability of the .sqlite files. Props to @powerkiki: Adrien Crivelli.

1.6.0

  • ๋ฉ€ํ‹ฐ์‚ฌ์ดํŠธ: ์„ค์ • ๋ฐ ํ†ต๊ณ„ ํŒจ๋„์„ ๋ฉ”์ธ ์‚ฌ์ดํŠธ์—๋งŒ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

1.5.7

  • ์†Œํ”„ํŠธ์›จ์–ด ์„ค์น˜ ๋˜๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ ์ž‘์—… ์งํ›„ ์บ์‹œ๋ฅผ ์ฆ‰์‹œ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.
  • ํ™œ์„ฑํ™” ๋ฐ ๋น„ํ™œ์„ฑํ™” ์‹œ ๋ฐ์ดํ„ฐ ์ƒํƒœ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ชจ๋“  ์ž„์‹œ ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  • ๋„์›€๋ง ํƒญ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ํ†ต๊ณ„ ํ‘œ์‹œ์— ํ•˜์ดํผ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

1.5.6

  • ์ง„๋‹จ ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋™์•ˆ ๊ฒฝ๊ณ ๋ฅผ ์ˆ˜์ •ํ•จ.
  • wp-config.php๋ฅผ ๋” ๊ฒฌ๊ณ ํ•˜๊ฒŒ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

1.5.5

  • ์ผ๋ถ€ ์ง„๋‹จ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ์ดํŠธ ์ƒํƒœ โ€“ ์ •๋ณด์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ๋“œ๋กญ์ธ(drop-in)์€ ๋ฏธ์ข…๊ฒฐ ์žฌ๊ท€(unterminated recursion)๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๋” ์ด์ƒ ๋ฒˆ์—ญ์„ ์กฐ๊ธฐ์— ๋ถˆ๋Ÿฌ์˜ค๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์˜ค๋ž˜๋œ SQLite ๋ฒ„์ „์—์„œ ์ธ๋ฑ์Šค ์ƒ์„ฑ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

1.5.4

  • ๋น„์˜๊ตฌ์  ๊ทธ๋ฃน, get_multiple ์บ์‹œ ๋ฏธ์Šค, MS-DOS ์ค„๋ฐ”๊ฟˆ(CRLF)์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

1.5.2

  • ์˜ค๋ธŒ์ ํŠธ ๊ฐ€์ ธ์˜ค๊ธฐ์—์„œ ํšŒ๊ท€ ๋ฒ„๊ทธ ์ˆ˜์ •(ํ•„์š” ์‹œ ๋ณต์ œํ•˜์ง€ ์•Š๋˜ ๋ฌธ์ œ ํ•ด๊ฒฐ).
  • ์„ค์ • ๋ณ€๊ฒฝ ์งํ›„ โ€˜Use APCuโ€™ ์ฒดํฌ๋ฐ•์Šค์˜ ์ž˜๋ชป๋œ ํ‘œ์‹œ ์ˆ˜์ •

1.5.1

  • ์„ค์ • ํŽ˜์ด์ง€์—์„œ APCu ์˜ตํŠธ์ธ ์ œ๊ณต.

1.5.0

  • ๊ฐ€๋Šฅํ•˜๊ณ  WP_SQLITE_OBJECT_CACHE_APCU๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์œผ๋ฉด ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด APCu๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.