隨著數據量的增大,MySQL數據庫中的單張表數據量越來越大,導致讀/寫效率下降、性能降低,容易崩潰。因此,分表技術應運而生。下面給一個簡單的示例,使用MySQL分表。
-- 創建一個新表 CREATE TABLE user ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `age` int(3) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- 在分表后,數據遷移到分表里 CREATE TABLE user_001 ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `age` int(3) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO user_001 (name, age) SELECT name, age FROM user WHERE id BETWEEN 1 AND 10000; -- 向分表中插入數據,例如,user_002 CREATE TABLE user_002 ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `age` int(3) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO user_002 (name, age) SELECT name, age FROM user WHERE id BETWEEN 10001 AND 20000; -- 顯示所有分表信息 SHOW TABLE STATUS LIKE 'user_%';
通過上面的代碼,可以將原來的一張表分為了多個分表,數據分布到不同的分表,從而提高了讀/寫效率和性能。使用分表后,數據量大的表已經輕松地分成了多個小表,每個小表的數據量減少,減少了查詢和計算時間,同時用戶的響應時間也會更短。
上一篇mysql匹配字符串條件
下一篇c json 解析出來