免费A级毛片无码专区网站-成人国产精品视频一区二区-啊 日出水了 用力乖乖在线-国产黑色丝袜在线观看下-天天操美女夜夜操美女-日韩网站在线观看中文字幕-AV高清hd片XXX国产-亚洲av中文字字幕乱码综合-搬开女人下面使劲插视频

Java一次返回中國(guó)所有省市區(qū)三級(jí)樹(shù)形級(jí)聯(lián)+前端vue展示【200ms內(nèi)】

一、前言中國(guó)省市區(qū)還是不少的 , 省有34個(gè) , 市有391個(gè) , 區(qū)有1101個(gè) , 這是以小編的庫(kù)里的 , 可能不是最新的 , 但是個(gè)數(shù)也差不了多少 。
當(dāng)一次返回所有的數(shù)據(jù) , 并且還要組裝成一個(gè)三級(jí)樹(shù) , 一般的for , 會(huì)循環(huán)34*391*1101次 。這樣就是千萬(wàn)級(jí)的 , 加上與數(shù)據(jù)庫(kù)交互 , 你跑半天也跑不完 。
最后的處理是組長(zhǎng)提供的思路 , 果然很快 。
二、思路首先:小編的省市區(qū)是三張表
第一:我們通過(guò)三次IO從數(shù)據(jù)庫(kù)中查詢(xún)出所有省市區(qū)的數(shù)據(jù) , 下面在進(jìn)行for循環(huán)組裝樹(shù)形效率就很快了!
第二:為了減少I(mǎi)O交互 , 我們把剛剛?cè)〕鰜?lái)的市和區(qū)構(gòu)建為map<provinceCode,List<City>> , map<districtCode,List<District>> , 這樣效率就上來(lái)了!
三、數(shù)據(jù)庫(kù)表設(shè)計(jì)1. 省CREATE TABLE `address_province`(`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',`code` char(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`name` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`short_name` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`new_code` char(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`is_latest` tinyint(3) NULL DEFAULT 1 COMMENT '是否是最新地址 , 0否1是',`remarks` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`created_at` datetime(0) NULL DEFAULT NULL COMMENT '創(chuàng)建時(shí)間',`created_by` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`updated_at` datetime(0) NULL DEFAULT NULL COMMENT '更新時(shí)間',`updated_by` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`is_deleted` tinyint(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT '刪除標(biāo)記 , 0:正常;1:刪除',PRIMARY KEY (`id`) USING BTREE,UNIQUE INDEX `uk_code`(`code`) USING BTREE,INDEX `idx_address_province_name`(`name`) USING BTREE,INDEX `idx_address_province_short_name`(`short_name`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 35 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '地址省' ROW_FORMAT = Dynamic;2. 市:CREATE TABLE `address_city`(`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',`code` char(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`name` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`new_code` char(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`province_code` char(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`is_latest` tinyint(3) NULL DEFAULT 1 COMMENT '是否是最新地址 , 0否1是',`remarks` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`created_at` datetime(0) NULL DEFAULT NULL COMMENT '創(chuàng)建時(shí)間',`created_by` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`updated_at` datetime(0) NULL DEFAULT NULL COMMENT '更新時(shí)間',`updated_by` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`is_deleted` tinyint(3) NULL DEFAULT 0 COMMENT '刪除標(biāo)記 , 0正常1刪除',PRIMARY KEY (`id`) USING BTREE,UNIQUE INDEX `uk_code`(`code`) USING BTREE,INDEX `idx_address_city_name`(`name`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 392 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '地址市' ROW_FORMAT = Dynamic;3. 區(qū)CREATE TABLE `address_district`(`id` int(11) NOT NULL AUTO_INCREMENT,`code` char(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`name` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`new_code` char(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`city_code` char(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`province_code` char(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`is_latest` tinyint(3) NULL DEFAULT 1 COMMENT '是否是最新地址 , 0否1是',`remarks` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`created_at` datetime(0) NULL DEFAULT NULL COMMENT '創(chuàng)建時(shí)間',`created_by` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`updated_at` datetime(0) NULL DEFAULT NULL COMMENT '更新時(shí)間',`updated_by` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`is_deleted` tinyint(3) NULL DEFAULT 0 COMMENT '刪除標(biāo)記 , 0正常1刪除',PRIMARY KEY (`id`) USING BTREE,UNIQUE INDEX `uk_code`(`code`) USING BTREE,INDEX `idx_address_district_name`(`name`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 3110 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '地址縣/區(qū)' ROW_FORMAT = Dynamic;

經(jīng)驗(yàn)總結(jié)擴(kuò)展閱讀