国标地图   省-市-区-县-镇-村全部数据为711892条数据,

如果要查询到全国省市区镇村的数据,数据库表结构设计不合理的情况下很有可能出现死查询的情况,

最开始的表结构如下

code

parent_code

name fullname level
11 0 北京市 bjs 0
1101 11 市辖区 sxq 1
110101 1101 东城区 dcq 2
110102 1101 西城区 xcq 2
110105 1101 朝阳区 zyq 2

现在查询北京下面的市[区县]信息就需要通过parent_code来联系父类信息,在加入索引的情况下,也会造成很差的性能问题,查询全国省市区耗时在2.5s左右,

如果在全国70w+的数据情况下,这样的设计结构查询就会造成死查询,为了避免这种情况,我对表从新设计了一下如下

fullname name searche_key level
bjs 北京市 11 0
sxq 市辖区 11.1101 1
dcq 东城区 11.1101.110101 2
xcq 西城区 11.1101.110102 2
zyq 朝阳区 11.1101.110105 2

这样设计的情况下,search_key承担了主键Key的作用,还承担了关联上下级关系的作用,level区别当前的递归级别,在给searche_key,name,level等列添加索引,

这样递归查询的性能将是极大的提升,内网查询的效率为1000次平均在3-4毫秒左右。

转载于:https://www.cnblogs.com/light-zhang/p/8358472.html

递归查询mysql数据库设计相关推荐

  1. 不属于mysql常量的是_MySQL中,下面______常量的写法是不正确的?-智慧树MySQL数据库设计与应用章节答案...

    MySQL数据库设计与应用:MySQL中,下面______常量的写法是不正确的?[?ж???] A:'2.1E5 B:0x123abc C:b'121' D:null MySQL数据库设计与应用章节测 ...

  2. mysql数据库设计的原则_MySQL数据库设计原则

    转自 http://www.supidea.com/post/mysql_design_database.aspx MySQL数据库设计原则 MySQL对于成为一个非常快速的数据库服务器有着当之无愧的 ...

  3. MYSQL数据库设计原则

    一.MYSQL数据库设计原则 1.核心原则 不在数据库做运算; cpu计算务必移至业务层; 控制列数量(字段少而精,字段数建议在20以内); 平衡范式与冗余(效率优先:往往牺牲范式) 拒绝3B(拒绝大 ...

  4. 数据库-优化-MYSQL数据库设计原则

    MYSQL数据库设计原则 1.核心原则 不在数据库做运算; cpu计算务必移至业务层; 控制列数量(字段少而精,字段数建议在20以内); 平衡范式与冗余(效率优先:往往牺牲范式) 拒绝3B(拒绝大sq ...

  5. mysql数据库设计原则_mysql数据库设计总结

    作者:腾讯云技术社区 链接:https://www.zhihu.com/question/19719997/answer/154809252 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权, ...

  6. mysql数据库慕课答案_智慧树MySQL数据库设计与应用慕课答案

    智慧树MySQL数据库设计与应用慕课答案 更多相关问题 [单选] TDD-LTE中一个子帧包含()时隙, [多选] 调整天线下倾角可以改变:() [单选] 多级破碎时,总破碎比等于多机破碎比的(). ...

  7. mysql函数包含的意思_MySQL存储函数的特性说明中,______表示函数体不包含SQL语句。-智慧树MySQL数据库设计与应用章节答案...

    MySQL数据库设计与应用:MySQL存储函数的特性说明中,______表示函数体不包含SQL语句.[?????] A:containssql B:modifiessqldata C:nosql D: ...

  8. mysql数据库设计与应用答案智慧树_智慧树MySQL数据库设计与应用完整免费答案...

    智慧树MySQL数据库设计与应用完整免费答案 更多相关问题 [问答题,简答题] 保育员在教师组织教育活动时应做哪些配合工作? [填空题] 幼儿园的安全教育包括防火.防触电.放走失.防烫伤.防食物.防摔 ...

  9. 互联网产品mysql数据库设计总结

    mysql数据库性能不比oracle数据库,所以设计上,和oracle有一些不同.下面总结一些互联网产品的数据库设计. 1.主键 主键可以使用bigint(20) unsigned也可以使用varch ...

最新文章

  1. 计算机图形学——BRDF
  2. 未来属于人工智能工程师,但成功转型不容易
  3. 加载dict_Python的dict实现原理和Java的HashMap之间的区别
  4. webbench源码解析
  5. netcore开发windows普通服务(非Web)并一键发布到服务器
  6. php常见后缀绕过,文件包含漏洞(绕过姿势)
  7. [转]浅谈php web安全
  8. cuteEditor6.0多语言版(集成lic文件)
  9. [C] static和extern的作用
  10. 阿尼亚二次元动漫鼠标指针最新教程+素材打包
  11. 现代控制理论4——线性系统状态方程的解
  12. matlab 力学,力学专业程序实践:用MATLAB解决力学问题的方法与实例
  13. HONOR荣耀50/荣耀50Pro怎么解锁huawei 荣耀50pro屏幕锁开机锁激活设备锁了应该如何强制解除鸿蒙系统刷机解锁方法流程步骤不开机跳过锁屏移除锁定进系统方法经验
  14. 智能电动自行车充电桩系统解决方案
  15. C++求球的面积与体积,公式一样输出结果不一样?
  16. 不玩手机的步步高玩大数据:一条短信让你多买一只澳洲大龙虾
  17. HDMI 之 HPD .
  18. 【.csv数据预处理实战】pandas 驾驶参数选取
  19. 企业数字化转型迫切,团队协同工具何以成为“杀手锏”?
  20. [数据库] mysql

热门文章

  1. 如何编写第三方接口_Python接口测试之数据驱动
  2. csv 字符串_爬虫|python读写csv文件的方法完成生涯规划表
  3. tesseract 提升 速度_11 代酷睿低压处理器阵容解析:新工艺带来了哪些性能提升?...
  4. FPM傅里叶叠层衍射成像笔记
  5. page fault in nonpaged area 蓝屏_由于错误的更新,安装Windows 10 KB4549951后蓝屏死机解决办法...
  6. oracle判断修改,【数据库】Oracle实现判断条件批量修改功能
  7. truncate数据后回收空间_Truncate用法详解
  8. java语言提供结构_java学习之语句结构
  9. Linux系统的磁盘管理
  10. 如何在柱状图中点连线_练瑜伽,如何放松僵硬紧张的髂腰肌?