mysql 查詢子表,mysql的partition關鍵字是分區(qū)還是分表?
首先得理解分區(qū)和分表有什么差別
分區(qū)是邏輯上的 但實際各分區(qū)的存放是可以物理隔離的 看上去跟分表一樣 但各分區(qū)的數(shù)據(jù)字典是統(tǒng)一的 就是分區(qū)表的數(shù)據(jù)字典 所以分區(qū)除了數(shù)據(jù)分散以為 最主要的是字典集中 在跨分區(qū)、多分區(qū)查詢時較分表的形式要簡潔 分區(qū)只能在一個庫里實現(xiàn)
分表是不同的表 可以跨庫分布 這些表本質上是互相獨立的 其對外的統(tǒng)一是靠應用層實現(xiàn)的 分表更徹底 但管理更復雜
所以在一般情況下 分區(qū)表已經(jīng)能很好的實現(xiàn)數(shù)據(jù)分散。但由于公用數(shù)據(jù)字典且不能跨庫 所以在高并發(fā)場景下仍然受限 于是分布式的分表方案應運而生
回到問題 PARTITION就是分區(qū) 至于看到不同分區(qū)有不同的數(shù)據(jù)文件 那是底層實現(xiàn)問題 分區(qū)表只有一個FRM文件 足以說明它是一張表(分區(qū)表)而不是很多張表(分表)