我有一个非常大的表,包含IP地址的整数表示,第二个表包含IP地址的整数表示的起始和结束范围.第二个表用于按照几个stackoverflow文章返回国家/地区.虽然这会返回所需的结果,但性能相当差.加入一个范围是否有更高性能的替代方案?下面是一组示例代码,显示了当前连接的工作方式:
CREATE TABLE #BaseTable
( SomeIntegerValue INT PRIMARY KEY);
INSERT INTO #BaseTable (SomeIntegerValue)
SELECT SomeIntegerValue
FROM (VALUES
(123), (456), (789)) Data (SomeIntegerValue);
CREATE TABLE #RangeLookupTable
( RangeStartValue INT PRIMARY KEY
, RangeEndValue INT NOT NULL);
INSERT INTO #RangeLookupTable (RangeStartValue, RangeEndValue)
SELECT RangeStartValue, RangeEndValue
FROM (VALUES
(0, 100), (101, 200), (201, 300)
, (301, 400), (401, 500), (501, 600)
, (701, 800), (901, 1000)) Data (RangeStartValue, RangeEndValue);
SELECT *
FROM #BaseTable bt
JOIN #RangeLookupTable rlt
ON bt.SomeIntegerValue BETWEEN rlt.RangeStartValue …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用ip2c根据用户的IP获取国家/地区代码.现在的问题是它无法找到它必须搜索的二进制文件.它抛出以下ecxepion
java.io.FileNotFoundException: ip-to-country.bin (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at net.firefang.ip2c.input.RandomAccessBuffer.<init>(Unknown Source)
at net.firefang.ip2c.IP2Country.<init>(Unknown Source)
at net.firefang.ip2c.IP2Country.<init>(Unknown Source)
at com.em.ss.controllers.CalendarController.postReminder(CalendarController.java:96)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:427)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:415)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:788)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:717)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.em.ss.filter.GzipFilter.doFilter(GzipFilter.java:86)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at …Run Code Online (Sandbox Code Playgroud)