zoukankan      html  css  js  c++  java
  • 递归查询mysql数据库设计

    国标地图   省-市-区-县-镇-村全部数据为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毫秒左右。

  • 相关阅读:
    Servlet的数据库访问
    Servlet 网页重定向
    Intellij idea创建javaWeb以及Servlet简单实现
    Tomcat
    QQ简易版
    单例
    centos7 jdk安装
    centos7 allure安装
    centos中执行apt-get命令提示apt-get command not found
    centos mysql使用踩过的坑
  • 原文地址:https://www.cnblogs.com/light-zhang/p/8358472.html
Copyright © 2011-2022 走看看