
数据库
fukaiit
-大圣,此去欲何?-踏南天,碎凌霄。-若一去不回……-便一去不回
展开
-
mysql 分组获取最新一条记录
1. 需求按用户名分组,获取最新插入的一条记录。2. 模拟数据-- ------------------------------ Table structure for user-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` int(11) NOT NULL...原创 2020-03-21 17:43:53 · 6669 阅读 · 2 评论 -
ElasticSearch入门扫盲记录
ElasticSearch是一个基于Lucene的全文搜索引擎。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。一、安装1. 安装eshttps://www.elastic.co/cn/downloads/elasticsearch2. 安装es查询工具(kibana或elasticsearch-head)(1)安装kibana:https://www.el...原创 2019-08-04 19:46:41 · 1066 阅读 · 0 评论 -
MySql字符集:utf8和utf8mb4
结论:默认(MySql8.0.12版本):一般情况:需要支持emoji表情等不常用字符:可以简单的理解 utf8mb4 是目前最大的一个字符编码,支持任意文字.为什么会有UTF8MB4?既然utf8应付日常使用完全没有问题,那为什么还要使用utf8mb4呢? 低版本的MySQL支持的utf8编码,最大字符长度为 3 字节,如果遇到 4 字节的字符就会出现错误了。三个字节的 ...原创 2019-03-23 18:32:31 · 2069 阅读 · 0 评论 -
Mysql - add a column to a table if not exists
在mysql中我们可以在create table之前判断这个table是不是已经存在,如果已经存在则不创建,从而避免报错。但是mysql并没有提供原生的方法在添加一个列之前判断这个列是否已经存在。在实际项目中,我们可能需要判断列是否存在,如果不存在则添加某列,比如在一个项目的初始化sql脚本中。我们可以创建一个存储过程来实现,如下:drop procedure if exists AddC...原创 2019-03-23 17:06:35 · 6844 阅读 · 0 评论 -
MySql中in查询效率低的替代方法
在项目中,有一个in查询效率很低,耗时大概10多秒,修改后为1秒左右,本来想造一组数据展现效果的,发现实际情况比较复杂,跟具体的关联数据类型、列是否有索引等相关,实际情况并不是某种查询就肯定比另一种查询效率高。在此不再费心思造数据,仅列出几种可能的查询方法,以备需要时尝试。1. in查询实现select * from product where id in (select rela_id f...原创 2018-12-18 00:16:28 · 27888 阅读 · 4 评论 -
Mysql实现不存在则插入,存在则更新
0. 数据准备1. ON DUPLICATE KEY UPDATEinsert into test_table(id,username)VALUES(4,'fukaiit')ON DUPLICATE KEY UPDATE username='fukaiit'执行如上sql,该id不存在(此处id不存在,指的是id为X的记录不存在,包括主键、unique索引列等情况),相当于执行了in...原创 2018-12-16 23:51:21 · 2992 阅读 · 0 评论 -
小微数据量数据迁移方案
1. 将历史数据表和目标数据表转移到同一库如果历史数据库和目标数据库是同一数据库,如都是mysql,可以使用一些工具软件如sqlyog等进行转移,或者导入导出即可;如果历史数据库和目标数据库是不同的数据库,可以使用ETL工具kettle进行转移,kettle作为ETL工具功能非常强大,复杂的数据迁移可以全部在kettle中进行,由于我对kettle不够熟悉,这里仅仅使用到了它跨数据库进行数据复...原创 2018-12-16 17:07:12 · 301 阅读 · 0 评论 -
mysql复制表语句
1. 仅复制表结构create table my_table_copy2 like my_table;2. 复制表结构和数据create table my_table_copy1 select * from my_table;注意:该语句只是按select语句执行的结果新建表,并不会复制表的主键、索引等信息。3. 完全复制表真正完整复制表:create table my_tabl...原创 2018-12-12 23:48:40 · 7483 阅读 · 1 评论 -
数据库中查找某值所在的表、字段(Oracle、SqlServer)
DECLARE CURSOR cur_query IS SELECT table_name, column_name, data_type FROM user_tab_columns; a NUMBER; sql_hard VARCHAR2(2000); vv NUMBER; BEGIN FOR rec1 IN cur_query LOOP ...原创 2018-06-08 15:37:30 · 18625 阅读 · 5 评论 -
Oracle 批量插入(insert all into)
项目需要用到导入excel表,并解析数据批量插入到oracle数据库中。1)直接解析excel,循环行,拼了sql,executeUpdate。 执行一波… 咦,这效率很低啊,有多少行数据就执行了多少句sql,基本是一万行已经接近一分钟了。 2)每次都仅执行一条sql语句,时间是不是都花在建立连接放开连接balabala的过程上了,用executebatch批量执行sql语句试试。 没...原创 2018-06-14 13:40:34 · 118306 阅读 · 34 评论 -
Redis 教程
本博客内容来自于redis官网教程,仅作为学习笔记和重点内容记录。1. 简介REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map、hash), 列表(list), 集合(sets) 和 有序集合(sor...转载 2018-06-06 00:20:04 · 315 阅读 · 0 评论 -
redis的安装与启动
后台启动:修改redis.conf中的daemonize后为yes(守护)./redis-server redis.conf查看启动:ps -ef | grep -i redis默认端口:6379停止redis:./redis-cli shutdown进入redis客户端:./redis-cli...原创 2018-06-04 22:22:01 · 196 阅读 · 0 评论 -
try Redis
try redis 命令记录try Redis网址 http://try.redis.io/ 1. 通过set设值,get取值> set server:name "fido"OK> get server:name"fido"2. incr使一个数值加一(保证原子性)、del用于删除key、setnx表示set if not exits,如果不存在时设值&原创 2018-06-03 23:02:46 · 656 阅读 · 0 评论 -
Oracle递归查询
本文转载自:Oracle递归查询,感谢原作者!1. 数据准备(1)创建表:CREATE TABLE SC_DISTRICT( ID NUMBER(10) NOT NULL, PARENT_ID NUMBER(10), NAME VARCHAR2(255 BYTE) NOT NULL);ALTER TABLE SC_DIS...转载 2018-03-01 23:04:22 · 546 阅读 · 0 评论