数据库技能
文章平均质量分 86
以实战为线索,逐步深入数据库性能优化的各个环节,掌握常用性能优化思路,提升编码能力和思维能力。
SQL 层面:SQL 的生命周期、权限管理、底层的排序原理、连表原理。
存储引擎层面: InnoDB 存储引擎的底层架构、索引的算法、事务的原理、锁机制、隔离机制、幻读。
iOS逆向
华为云云享专家认证|阿里云开发社区博客专家,定期分享Java、iOS资讯(包括基础知识储备)、小程序开发与运营、阅读与写作。只为你呈现有价值的信息,专注于移动端技术研究领域。
展开
-
基于elasticsearch存储船舶历史轨迹: 使用scroll滚动技术实现大数据量搜索
通过POST请求往Elasticsearch批量插入文档数据(API 响应常用选项filter_path参数指定响应我们想要响应的字段)实现:每天创建索引,使用POST请求往Elasticsearch批量插入文档数据。添加filter_path Query 参数,批量插入文档只响应errors字段。原创 2024-09-28 15:46:20 · 334 阅读 · 0 评论 -
基于报位时间判断船舶设备是否在线,基于心跳时间判断基站网络是否在线
假定2个小时之内有报位的数据认为在线。原创 2024-09-23 16:08:14 · 154 阅读 · 0 评论 -
监视SQL Server 内存使用量
如果内存在等待超过 20 分钟后不可用,则 SQL Server 将终止查询,出现错误 8645“等待内存资源在资源池”default“中执行查询时出现超时。最初,查询会请求该执行内存,如果授予此内存,查询将使用内存的全部或部分内存来对结果或哈希存储桶进行排序。在查询执行期间分配的此内存称为内存授予。例如,如果查询执行对内存中非常大的行集执行排序操作,则排序可能需要几秒钟或几分钟时间,并且授予的内存用于查询的生存期。查询执行内存(QE 内存): 此术语用于突出显示在执行查询期间使用排序或哈希内存的事实。原创 2024-09-03 14:30:47 · 347 阅读 · 0 评论 -
排查SQL Server中的内存不足及其他疑难问题
以下示例输出显示,22 个请求使用大约 900 MB 的查询执行内存,3 个请求正在等待。这发生在默认池(pool_id = 2)和常规查询信号灯(resource_semaphore_id = 0) 中。可以使用 sys.dm_os_memory_clerks 或 DBCC MEMORYSTATUS 来观察SQL Server内的总体内存使用情况。此 DMV 按资源池(内部、默认和用户创建)和 resource_semaphore (常规和小型查询请求)细分查询预留内存。具有内存授予的查询示例。原创 2024-09-03 10:35:51 · 444 阅读 · 0 评论 -
数据库小技能:跨服务器的数据迁移(导出)
背景:旧平台数据迁移到新平台数据库。原创 2024-08-01 13:41:11 · 142 阅读 · 0 评论 -
GeoServer GIS 服务器(geoServer离线地图服务器搭建)
tomcat是支持war包部署的,将下载的zip文件解压,把geoserver.war包拿出来扔到comcat --> webapps下,启动tomcat服务即可,由于我前面把tomcat端口修改为60005,访问时在浏览器输入。不利于存储,比较占内存。该组织发布了一个坐标参照系统的数据集,并维护坐标参照系统的数据集参数,以及坐标转换描述,数据集对全球收录到的坐标参照系统进行了编码。点击工作区,点击添加新的工作区填写工作区名称,命名空间url地址,这个地址在地图发布后可以调用不同的图层,一定要填写。原创 2024-07-27 17:23:26 · 188 阅读 · 0 评论 -
通过POST请求往Elasticsearch批量插入文档数据(API 响应常用选项filter_path参数指定响应我们想要响应的字段)
需求: 向Elasticsearch中的’test_index’索引批量插入文档。Body 参数text/plain,批量插入AP必须以换行结尾。批量插入API,如果没有以换行结尾报错。情况认证: Basic Auth。调试工具:Apifox。原创 2024-07-23 16:42:32 · 780 阅读 · 1 评论 -
数据库存 IP 地址,用什么数据类型比较好?
存储空间:4 字节的 INT 类型 15 字节的 VARCHAR(15) 更加节省存储空间。另外,VARCHAR 除了会保存需要的字符数,还会另加一个字节来记录长度(如果列声明的长度超过 255,则使用两个字节记录长度),所以 VARCHAR(15) 其实要占用 16 个字节。在定义表时,可以在数据类型后面添加关键字 UNSIGNED 来定义无符号整数,否则默认为有符号整数。检索速度:如果要在 IP 地址上建立索引,那么对于字符串索引来说,速度较慢。inet_aton 和 inet_ntoa。原创 2024-07-18 08:50:27 · 863 阅读 · 0 评论 -
数据库客户端自定义驱动和数据源:以 HighGo-瀚高为例子
url:jdbc:highgo://IP地址:端口号/数据库名?metaFromSQL=1&schemaOwner=模式名&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT8&useSSL=false。原创 2024-07-12 16:24:00 · 466 阅读 · 0 评论 -
提升船舶轨迹查询效率
按天存储轨迹数据,本文是一个月存储在6在表中,即:01,06,11,16,21,26。新增decimal类型的日期字段用于查询。获取两个日期之间的所有日期 字符串。应用配置文件添加配置选项。根据船号和日期进行查询。需求: 查询船舶轨迹。原创 2024-07-03 09:39:07 · 78 阅读 · 0 评论 -
mybatis mapper.xml 比较运算符(大于|小于|等于)的写法: 转义和<![CDATA[]]>
CDATA[ 内容 ]]> 中的内容 部分,不能再包含 ,也不能嵌套使用。[CDATA[]]> 是一个整体,处理放置内容文本的部分之外,不能出现 空格 或者 换行。个人比较喜欢使用 ,因为我记不住那个转义的意思。这种格式时,会把方块中的内容直接输出,不做任何的解析转义。背景:在 *.xml 中使用常规的。会与xml的语法存在冲突。【MarkDown】小知识。在 xml 格式中,当遇到。应用场景:查询时间范围。原创 2024-07-03 08:32:57 · 612 阅读 · 0 评论 -
DataGrip 数据库连接客户端
打开dmg镜像,将“DataGrip.app”拖入应用程序中;原创 2024-05-31 16:52:20 · 242 阅读 · 0 评论 -
SQL Server 拆分逗号分隔的字段为多条数据
Expression1是要到expression2中寻找的字符,start_location是CHARINDEX函数开始在expression2中找expression1的位置。需求:将TargetEquipmentModelIds 逗号分隔的字段拆分为多条数据equipment_model_id。字符数据的表达式character_expression 可以是常量、变量,也可以是字段或二进制字段。拆分逗号分隔的字段为多条数据的应用场景: 数据处理,根据用户名数组查询用户id,进行权限配置。原创 2024-05-31 14:27:33 · 3384 阅读 · 0 评论 -
mybatis-plus小课堂: apply 拼接 in SQL,来查询从表某个范围内的数据 | 多条件 or()的使用
需求: wrapper自定义sql: 使用条件构造器作为参数。1. mapper.java/Service.java定义接口方法。从源码可以看出第二参数params 无法使用字符串。正确的实现方式如下:直接在applySql拼接完整。如果params使用数组只会获取第一个元素。,否则如果有字段重名就无法明确使用哪一个。子查询例子: 查询租户对应的仓库ID数据。条件构造器作为参数都需要。如果是主表条件可以使用。原创 2024-05-25 14:16:43 · 612 阅读 · 0 评论 -
JDBC数据库连接配置
url:jdbc:gbasedbt-sqli://IP地址:端口号/数据库名:GBASEDBTSERVER=gbasedbt-server;url:jdbc:sqlite:/path/db-file-name (MAC以及Linux) jdbc:sqlite://path/db-file-name (Windows)原创 2024-05-23 08:50:18 · 123 阅读 · 0 评论 -
mybatisPlus插入或者更新数据的时候,为一些字段指定默认值。
实现metaObjecthandler接口,重写insertFill、updateFill方法;每次执行插入和修改操作时,会执行insertFill,updateFill方法;实体的公共字段使用@TableField注解:表示此字段只在插入/新增操作时更新数据:表示此字段在修改和新增操作时都更新数据;:表示此字段只在修改操作时都更新数据;原创 2024-05-21 14:23:32 · 1336 阅读 · 0 评论 -
SQL Server跨服务器查询/更新和跨数据库查询
删除和创建链接服务器都应该先判断是否存在对应链接服务器。应用场景: 跨服务器更新数据。原创 2024-05-17 09:28:59 · 559 阅读 · 0 评论 -
sql server【 特定分隔符隔开的字符串转表】和【 列转逗号隔开的字符串】
STUFF 函数将字符串插入到另一个字符串中。它从第一个字符串的开始位置删除指定长度的字符;然后将第二个字符串插入到第一个字符串的开始位置。字符数据的表达式character_expression 可以是常量、变量,也可以是字段或二进制字段。Sql Server 列转逗号隔开的字符串 和 逆转。原创 2024-05-16 10:41:49 · 286 阅读 · 0 评论 -
SQL Server 存储过程中的字符串本身包含单引号的用法
在SQL Server中,单引号用于表示字符串常量。如果你的存储过程中的字符串本身包含单引号,你需要用两个连续的单引号来表示每个单引号。使用场景: 字符串类型字段的值比较。原创 2024-05-04 15:26:55 · 764 阅读 · 0 评论 -
ES集群部署的核心步骤
1M存储2709条,1G存储277W条数据 1天按照2000W计算,需要10G的存储空间。卸载observer : https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000210148。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑,需要创建一个单独的用户用来运行ElasticSearch服务。开发9200和9300端口。9300,允许配置ES节点机器IP地址,用于节点之间的相互发现。原创 2024-03-27 20:03:38 · 239 阅读 · 0 评论 -
Java 8的流(Streams)实现数据分组筛选数据来替代row_number()窗口函数
table_name:要对其当前标识值进行检查的表名。指定的表必须包含标识列。表名必须遵循有关标识符的规则。两个或三个部分的名称必须进行分隔,例如 Person.AddressType 或 [Person].[AddressType]。2个小时之内的数据:按照Jhao 进行分组,位置时间进行降序排序,where条件为grow_id=1。new_reseed_value:用作标识列的当前值的新值。NORESEED:指定不应更改当前标识值。RESEED:指定应该更改当前标识值。原创 2024-03-23 11:11:58 · 351 阅读 · 0 评论 -
运维小技能:IP多号段配置、重置Mac电脑密码、修改系统级别的文件
尽管Linux的设计思想受到了MINIX的很大影响,但是这种影响并不是技术上的,更多的是理念上的。Linux并没有使用UNIX的一行代码,是Linux完全从头构建的操作系统。因此,Linux不是UNIX的衍生版,它是一个全新的操作系统。ES存储空间评估:966612条文档,需要356.93mb。1M存储2709条,1G存储277W条数据 1天按照2000W计算,需要10G的存储空间。编辑位置可以添加新号段,需要配置对应的DNS、网关和子网掩码。(CentOS系统)文件,其中ethX是你的网络接口名称。原创 2024-03-22 09:53:50 · 317 阅读 · 0 评论 -
ES数据同步:定时重启Logstash,并清除相关数据。
crontab 文件是一个用于定时执行任务的文件,其中包含了一系列的命令和任务,系统会按照预定的时间间隔来执行这些任务。-x [num]:设置 crontab 文件的加密级别,默认为 0,不加密。crontab 文件中的命令会在后台执行,不会在终端中显示输出结果,如果需要查看输出结果可以使用日志文件记录。使用 crontab -e 可以编辑当前用户的 crontab 文件,可以添加、删除和修改定时任务。-u user:指定要编辑的用户的 crontab 文件,默认为当前用户。原创 2024-03-22 08:31:14 · 536 阅读 · 0 评论 -
ES9200端口漏洞添加授权:es集群添加用户安全认证功能(Set up basic security for the Elastic Stack)【 使用Xpack进行安全认证】
6.8 之前免费版本并不包含安全认证功能,之后版本有开放一些基础认证功能。为了安全起见,设置访问密码,防止外网访问ES/黑客破解了服务器登录密码后,进而获取服务器上的 ES 数据。由于Elasticsearch的功能强大和使用简单,维基百科、卫报、Stack Overflow、GitHub等都纷纷采用它来做搜索。在节点 1 上执行如下命令,设置用户密码。设置完之后,数据会自动同步到其他节点。访问head管理页面: http://localhost:9100/es 集群不启动,下面的添加密码操作执行不了。原创 2024-03-21 09:15:30 · 616 阅读 · 1 评论 -
部署Elasticsearch集群,实现海量航迹数据存储
ElasticSearch官网下址: https://www.elastic.co/cn/downloads/elasticsearch。进入解压后的elasticsearch-7.2.0 文件夹中的config文件夹,并修改elasticsearch.yml 文件中的配置。在后台启动elastic search进程,需要在启动时加个。保存并退出后执行命令。原创 2024-03-20 10:13:01 · 397 阅读 · 0 评论 -
ES查询小技能
精确查询:根据精确词条值查找数据,一般是查找keyword、数值、日期、boolean等类型字段。全文检索(full text)查询:利用分词器对用户输入内容分词,然后去倒排索引库中匹配。复合(compound)查询:复合查询可以将上述各种查询条件组合起来,合并查询条件。: 用must、must_not、filter等方式组合其他查询。查询所有:查询出所有数据,一般测试用。地理(geo)查询:根据经纬度查询。原创 2024-03-19 13:40:17 · 280 阅读 · 0 评论 -
基于Logstash的动态表同步方案
基于Logstash由SQLServer向Elasticsearch同步数据,在连接数据库时,url后面加上一个encrypt=false或者encrypt=true;生成一个包含正确日期占位符的 Logstash 配置文件,然后再 启动Logstash重新加载配置文件。在Logstash外部编写一个脚本来生成这个配置文件,并在其中插入当前的日期。Logstash配置在启动时是静态的,不能直接在input 部分的。使用statement_filepath,动态获取数据库时间。原创 2024-03-19 10:38:58 · 209 阅读 · 2 评论 -
航迹数据优化方案
基于Logstash由SQLServer向Elasticsearch同步数据:经测试兼容 SQL Server 2005,在连接数据库时,url后面加上一个。优化方案:基于ElasticSearch分布式集群存储海量航迹数据(北斗、短波、AIS),实现轨迹数据的读写分离。业务数据通过传统DB做。针对存储航迹数据库的主服务器进行同步:17(从),120(主),2(广东/广西),11( 闽浙苏),12(东北)。涉及的表:p_dw_xxxxxx、t_event-xxxxxx_M、T_AIS_xxxxxx_M。原创 2024-03-18 20:35:27 · 462 阅读 · 0 评论 -
用SeaTunnel从SQL Server向Elasticsearch同步数据
注意:请替换your_sqlserver_host、your_database_name、your_username、your_password、your_table_name和your_index_name等占位符为实际的值。创建一个新的配置文件(例如sync_sql_to_es.conf),并使用SeaTunnel的DSL来定义你的数据同步任务。确保你已经将配置文件放在正确的位置,并且SeaTunnel能够访问到它。使用命令行工具启动SeaTunnel任务,并指定你的配置文件。原创 2024-03-16 11:46:12 · 437 阅读 · 0 评论 -
渔业安全生产综合管理指挥系统-航迹数据优化方案
优化方案:基于ElasticSearch分布式集群存储海量航迹数据(北斗、短波、AIS),实现轨迹数据的读写分离。业务数据通过传统DB做,Elastic Search做搜索服务,基于Logstash由SQLServer向Elasticsearch同步数据。原创 2024-03-16 08:16:50 · 387 阅读 · 1 评论 -
elasticsearch小技能:地理坐标的mapping的设计
在java中使用SpringData接入Elasticsearch,创建ElasticsearchRepository操作数据时,需要将实体类的地理坐标字段使用注解。原创 2024-03-15 20:50:17 · 217 阅读 · 0 评论 -
elasticsearch常见问题:xpack.security.transport.ssl、unknown setting [node.master]
进入解压后的elasticsearch-7.2.0 文件夹中的config文件夹,并修改elasticsearch.yml 文件中的配置。在后台启动elastic search进程,需要在启动时加个。在ES8中设置主节点的语句已经进行了修改,需要设置节点的角色。保存并退出后执行命令。原创 2024-03-14 13:55:56 · 771 阅读 · 0 评论 -
基于Logstash由SQLServer向Elasticsearch同步数据: logstash配置文件
官方文档:https://www.elastic.co/guide/en/logstash/current/pipeline.html。statement : sql 里面的字段首字母必须as 成小写,或者你直接小写也行,但是必须的小写。依赖DB中的特定字段,可能会涉及到原有表结构的修改。在删除数据时无法通过这种方式获得数据的变更。x_Loan_PreservationAdvanceList.sql 需要同步数据执行的Sql。解压完成后,进入解压后的logstash-7.2.0文件夹。原创 2024-03-14 10:30:11 · 512 阅读 · 0 评论 -
基于Logstash由SQLServer向Elasticsearch同步数据:环境准备【SQL Server data to Elasticsearch using LogStash】
整体介绍文档:https://docs.microsoft.com/en-us/sql/relational-databases/track-changes/about-change-tracking-sql-server?elasticsearch-head 则是一款开源的ElasticSearch管理界面,它的项目主页为:https://github.com/mobz/elasticsearch-head。英文差的朋友可以把URL中的en-us改成zh-cn来看中文的文档。原创 2024-03-14 09:53:44 · 858 阅读 · 0 评论 -
基于ElasticSearch存储海量AIS数据:时空立方体索引篇
为确保索引效率和灵活性,借鉴时。时空立方体索引在空间维上切分依赖于索引数据在空间维上的分布特点,故需对AIS数据在空间范围内的分布进行聚类分析,以提取其空间分布特征。地将候选集迅速缩小到时空立方体索引中某个或几个子索引,再对子索引进行细粒度筛选,从而提升索引效率。算法确定空间聚类,将按时间切分的数据按照空间聚类结果进行空间切分,从而构造一个时空立方体索引。例如,如果业务中经常出现以月为时间跨度的时空查询,则可按月将索引进行切分。空立方体模型思想,将索引在时空维度上进行切分,从而构造时空立方体索引。原创 2024-03-11 11:36:57 · 216 阅读 · 0 评论 -
基于ElasticSearch存储海量AIS数据:AIS数据索引机制篇
考虑到实际应用中经常处理诸如“查询所有中国客船在某时间段内位置”的查询,将部分静态信息加入动态信息索引。在集群系统中多索引联合查询非常耗时,通过将部分静态与动态信息进行合并,避免了查询时先在静态信息表中搜索,再在动态信息表中查询造成的多次访问开销。AIS数据信息根据其不同更新频率可分为静态和动态信息。为便于查询,在索引信息中引入部分静态信息。将AIS相关的空间数据以空间点对象的方式存储,以便时空查询,但不利于轨迹查询。AIS数据静态信息主要指船舶系统固有的属性信息,如船舶编号(MMSI号)、名。原创 2024-03-11 11:17:26 · 320 阅读 · 0 评论 -
基于ElasticSearch存储海量AIS数据-架构设计篇
关键词:时空索引;船舶自动识别系统;轨迹压缩;数据集群。原创 2024-03-11 10:52:39 · 349 阅读 · 0 评论 -
数据库小技能:事务隔离级别
有一个sql 线程,来读取 relay log 的内容,然后对从库执行 sql 语句操作,从结果上来看就是将主库执行过的写操作,在从库上也重放一遍,这样主从数据就一致了。报表业务场景需要同一时间维度进行统计,反应数据趋势,进行查询的时候需要使用readonly事务,事物隔离级别使用可重复读。报表业务场景需要同一时间维度进行统计,反应数据趋势,进行查询的时候需要使用readonly事务,事物隔离级别使用可重复读。除此之外,主库还会再起一个binlog dump 线程将 binlog 文件的变更发给从库。原创 2024-02-18 11:06:22 · 70 阅读 · 0 评论 -
数据库小技能:根据信息内容建立索引,来有效地找到目标。【编址(Addressing)->寻址->访问】
计算机对于数据的操作,都是先找到盒子的地址,然后把那个盒子中的数据拿出来处理,处理完的内容,再放回到某个地址中。字典查找法:大约估摸着所要查的字所在的位置,直接打开那一页,如果发现要找的字在这一页的前面,就往前翻,否则就往后翻,几次之后,就能找到目标。超过3个join的复杂SQL,需要join的字段,数据类型保持绝对一致并保证被关联的字段有单独的索引。如果数据总是在变化,可以利用原来数据有序的特点,动态调整新数据的,让每次排序所做的工作不要太多。排序是有成本的,是否应该对数据排序,要看具体应用的情况而定。原创 2023-07-21 15:22:15 · 253 阅读 · 0 评论 -
sql性能优化:批量插入/更新数据、 基于键集分页方法处理时间分页数据重复的问题、多语句执行(allowMultiQueries=true)】
例子:账单流水分页接口新增一个请求参数MaxCompleteTime最大交易时间,存储的是第一页的第一条记录的交易时间,用于处理下一页返回的数据。避免请求第一页之后,有新数据入库,导致第二页返回的数据和第一页重复。用法: MaxCompleteTime是上一页的第一条交易记录的完成时间CompleteTime。解决方案:分页接口新增一个请求参数,用于记录第一页的最大排序时间(比如第一条记录的交易时间)。有必要使用通配符时,不要将通配符写在搜索模式的开始处,否则利用不了索引。问题:按照时间分页的数据重复。原创 2023-06-30 17:46:35 · 437 阅读 · 0 评论