数据库
文章平均质量分 64
数据库
zzhongcy
因为站在了巨人的肩上,所以我看得更远。
当你发现自己的才华撑不起野心时,就请安静下来学习吧
展开
-
You can‘t specify target table ‘xxx‘ for update in FROM clause
可以作为临时表处理,因此可以通过如下更改 SQL 来执行。在添加或更新数据时不能在同一个表上使用子查询。原创 2024-07-05 11:27:46 · 206 阅读 · 0 评论 -
Spring Data JPA方法名命名规则
简单条件查询:查询某一个实体类或者集合。按照Spring Data的规范的规定,查询方法以find | read | get开头(比如 find、findBy、read、readBy、get、getBy),涉及查询条件时,条件的属性用条件关键字连接,要注意的是:条件属性以首字母大写。框架在进行方法名解析时,会先把方法名多余的前缀截取掉,然后对剩下部分进行解析。原创 2023-11-13 11:29:29 · 1798 阅读 · 0 评论 -
SQL 查询顺序
SQL 查询顺序(英文)In a non-image format, the order is:FROM/JOINand all theONconditions WHERE GROUP BY HAVING SELECT(including window functions) ORDER BY LIMIT转自:https://jvns.ca/blog/2019/10/03/sql-queries-don-t-start-with-select/...原创 2021-07-14 16:18:48 · 198 阅读 · 0 评论 -
空间索引 - Redis/MongoDB/PostgreSQL/MySQL空间索引使用报告
最近接触到了Mysql空间索引,网上查了查资料,这里记录一下。空间索引索引我们都用过,它是一种特殊的存储结构,就像图书馆里书的分类存放策略或是现代化图书馆里的图书查询系统,能帮助我们快速找到自己需要的书。 数据库中,索引的存储一般使用 B树 或 B+树 来实现,通过二分法来查找法来快速定位到数据位置。普通索引对于一维数据(key->data)是无往不利,可是面对空间数据(lon,lat -> data)就有些无能为力了,如果查询(116.27636, 40.041285)附.转载 2021-04-08 13:21:46 · 1609 阅读 · 0 评论 -
MySQL EXPLAIN详解,left join和in优化详解,以及optimizer_trace跟踪语句使用
简述:explain为mysql提供语句的执行计划信息。可以应用在select、delete、insert、update和place语句上。explain的执行计划,只是作为语句执行过程的一个参考,实际执行的过程不一定和计划完全一致,但是执行计划中透露出的讯息却可以帮助选择更好的索引和写出更优化的查询语句。EXPLAIN输出项(来源于mysql5.7文档)备注:当使用FORMAT=JSON, 返回的数据为json结构时,JSON Name为null的不显示。Column JSON Na原创 2020-06-16 14:01:15 · 8162 阅读 · 0 评论 -
mysql索引详解,以及多个单列索引和联合索引的区别详解
温故而知新,可以为师矣网上看到一些文章,觉得很不错,这里记录一下。背景:为了提高数据库效率,建索引是家常便饭;那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下。一、联合索引测试注:Mysql版本为 5.7.20创建测试表(表记录数为63188):CREATE TABLE `t_mobilesms_11` ( `id` bigint(20) NOT NULL AUTO_INCREMENT,..转载 2020-06-12 17:22:51 · 3529 阅读 · 2 评论 -
MySQL性能优化
MySQL性能优化(一):优化方式 MySQL性能优化(二):优化数据库的设计 MySQL性能优化(三):索引 MySQL性能优化(四):SQL优化 MySQL性能优化(五):分表 MySQL性能优化(六):分区 MySQL性能优化(七):其它优化...转载 2019-05-06 13:29:04 · 321 阅读 · 0 评论 -
解决mysql:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO/YES)
1 现象mysql -u root -p错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)2 linux系统:在配置文件my-default.cnf或my.cnf下[mysqld]下添加skip-grant-tables;因为此方法无效,所以找到了以...原创 2019-07-25 17:44:20 · 67133 阅读 · 19 评论 -
深入理解MySql子查询IN的执行和优化
IN为什么慢?在应用程序中使用子查询后,SQL语句的查询性能变得非常糟糕。例如:SELECT driver_id FROM driver where driver_id in (SELECT driver_id FROM driver where _create_date > '2016-07-25 00:00:00');独立子查询返回了符合条件的driver_id,这个问题是...转载 2019-07-31 14:38:25 · 463 阅读 · 0 评论 -
Java 数据类型和 MySql 数据类型对应一览表
1 数据类型说明 MySQL Connector/J 对于 MySql 数据类型和 Java 数据类型之间的转换是很灵活的。 一般来讲,任何 MySql 数据类型都可以被转换为一个 java.lang.String,任何 MySql 数字类型都可以被转换为任何一种 Java 数字类型(当然这样也可能出一些四舍五入,溢出,精度丢失之类的问题)。转换表...原创 2019-08-05 14:22:54 · 1017 阅读 · 0 评论 -
sql where 和on 的区别
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。在使用left jion时,on和where条件的区别如下:1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了...转载 2019-08-01 13:27:50 · 6833 阅读 · 0 评论 -
sql语句中条件查询in、like、=的效率
1、如果条件字段都是非索引字段,那么效率都差不多,就看结果大小。2、有差别的在于条件字段是索引字段时: “=”在索引的情况下都会进行索引扫描,所以效率总是高的。 “like”当模糊查询为右模糊,比如'abc%'时,扫描索引,高效。当模糊查询含左模糊时,比如'%abc',进行全表扫描,低效。 “in”的作用等同于or,也是进行索引扫描,高效。 另外,“in”还可以...转载 2019-08-01 15:52:46 · 37666 阅读 · 2 评论 -
SQL索引建立原则和使用
之前在网上看到过很多关于mysql联合索引最左前缀匹配的文章,自以为就了解了其原理,发现遗漏了些东西,这里自己整理一下这方面的内容。1 前言SQL索引有两种,聚集索引和非聚集索引聚集索引存储记录是物理上连续存在,而非聚集索引是逻辑上的连续,物理存储并不连续字典的拼音查询法就是聚集索引,字典的部首查询就是一个非聚集索引.聚集索引和非聚集索引的根本区别是表记录的...原创 2019-08-02 13:31:54 · 21065 阅读 · 0 评论 -
分布式之数据库和缓存双写一致性方案解析
为什么写这篇文章?首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析。于是博主战战兢兢,顶着被大家喷的风险,写了这篇文章。文章结构本文由以下三...转载 2019-08-20 18:12:10 · 268 阅读 · 0 评论 -
sql大查询left join拆分优化,去掉临时表
本文讲解如何把一条带有一个或多个left join或right join的sql语句拆分成多条sql语句。 MySQL进行连表查询效率是很低的,特别是数据很大,而且并发量很高的情况,索引都无法解决问题,最好的办法就是把sql语句拆分成多条单表查询的sql。 公司电商网站现在要做网站服务化,用java做中间件,PHP调用java接口获取数据,数据表也进行了拆分,分库,要求...原创 2019-08-15 17:38:03 · 11990 阅读 · 0 评论 -
mac下mysql的端口号3307修改
最近用到数据库,下载了一个mysql,但是发现修改my.cf里的mysql端口没有作用。原因:其它Linux(入ubuntu,openbsd)下配置mysql的文件是/etc/my.cf, 而mac的中是/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist文件。打开/Library/LaunchDaemons/com原创 2016-04-25 14:39:54 · 13225 阅读 · 2 评论 -
mysqldump导入导出数据库总结
基本的使用方法总结:1 导出所有库 系统命令行 mysqldump -uusername -ppassword --all-databases > all.sql 2 导入所有库 mysql命令行 mysql>source all.sql; 3 导出某些库 系统命令行 mysqldump -uusername -ppassword --datab转载 2016-04-07 19:24:56 · 6002 阅读 · 0 评论 -
数据库查询性能优化
自从自己毕业后,一直在公司做研发工作,工作期间几乎没有接触SQL。 虽然自己大学期间学习的数据库知识还不错,但是时间长了难免会遗忘。今天有空,就把回顾回顾SQL知识吧。其实很多资料都是网上查找的,这个得感谢google,虽然最近google代理服务器也被墙了,访问比较困难,但是还是相信google的搜索结果。毕竟搞技术的,不用google难道用度娘? 呵呵 话归正传,下...原创 2014-10-21 12:56:02 · 2746 阅读 · 0 评论 -
Sqlate性能优化
SQLite极致性能关闭同步,Synchronous=Off,提升性能。添删改操作时不必同步等待写入磁盘,操作系统会延迟若干毫秒批量写入 设置WAL模式,Journal Mode=WAL,减少锁定。写入向前日志模式,避免多线程访问时锁定数据库,写入时不必使用排它锁影响其它线程读取,而是把事务操作写入到WAL文件中,延迟合并 加大缓存,Cache Size=5000,提升性能。操作系统通过文...转载 2014-10-21 15:21:34 · 771 阅读 · 0 评论 -
Mysql Linux安装和事件调度器(Event Scheduler)
MySQL安装一、下载MySQL安装文件 完全安装MySQL需要下面6个文件: MySQL-server-community-5.1.26-0.rhel4.i386.rpm MySQL-client-community-5.1.26-0.rhel4.i386.rpm MySQL-shared-community-5.1.26-0.rhel4.i386.rpm M转载 2014-12-15 20:23:51 · 5098 阅读 · 0 评论 -
SQL注入详解
前言 很早以前句听说过“sql注入”这个技术了,但是在以前实际项目中没有怎么用数据库,所以没有进行研究,但是最近项目中用到了SQL,让自己又重新考虑了一下SQL的安全性。 自己网上查了查资料,在这里转载记录一下,就当自己做一个笔记吧,给大家分享分享。SQL注入前阵子发现公司的网站有SQL注入漏洞,向项目经理提了以后,得到的答复异常的冷淡:“早就知道,这种原创 2015-01-05 09:54:22 · 1754 阅读 · 0 评论 -
MYSQL服务器my.cnf配置文档详解
此配置是老男孩生产线上使用的配置,在培训的时候,他给的,我在这里,对各参数添加了中文说明这配置已经优化的不错了,如果你的mysql没有什么特殊情况的话,可以直接使用该配置参数MYSQL服务器my.cnf配置文档详解硬件:内存16G[client]port = 3306socket = /data/3306/mysql.sock[mysql]no-auto转载 2014-05-19 11:12:55 · 1164 阅读 · 0 评论 -
Linux下MySQL 数据库的基本操作
哎 好久没有接触mysql了,基本操作都遗忘了,网上查了查资料,在这里转载记录一下下! Linux下MySQL 数据库的基本操作链接数据库两种方式:mysql -uroot -h 127.0.0.1 -pmysql -uroot -p -S /var/run/mysqld/mysqld.sock 1. 创建数据库相关命令: 首先,下载MySQL相关软件包:apt...转载 2014-03-06 15:54:08 · 1743 阅读 · 0 评论 -
写出高性能SQL语句的35条方法分析
以下的文章主要向大家描述的是MySQL数据库性能优化的实际操作方案,随着MySQL数据库的不断发展,MySQL数据库性能优化也变得越来越受重视,以下的文章就主要对其性能优化做一详细介绍。1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的MySQL数据库性能,我们可以将表中字段...转载 2014-12-06 16:57:45 · 952 阅读 · 0 评论 -
数据库优化
数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第三部分 概述:程序访问优化也可以认为是访问SQL语句的优化,一个好的SQL语句是可以减少非常多的程序性能的,下面列出常用错误习惯,并且提出相应的解决方案 一、操作符优化 1. IN、NOT IN 操作符 IN和EXISTS 性能有外表和内表区分的,但是在大数据量的表中推荐用EXISTS 代替转载 2014-10-21 15:49:31 · 790 阅读 · 0 评论 -
MySQL查询今天/本周/上周/本月/上个月份的数据
MySQL查询的方式很多,下面为您介绍的MySQL查询实现的是查询本周、上周、本月、上个月份的数据,如果您对MySQL查询方面感兴趣的话,不妨一看。查询当前这周的数据 SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now());转载 2015-01-22 11:10:46 · 17625 阅读 · 3 评论 -
MySQL的timeout那点事
因为最近遇到一些超时的问题,正好就把所有的timeout参数都理一遍,首先数据库里查一下看有哪些超时:root@localhost : test 12:55:50> show global variables like "%timeout%";+----------------------------+--------+| Variable_name转载 2014-12-09 19:23:48 · 1180 阅读 · 0 评论 -
mysql随机查询效率优化
在mysql中查询5条不重复的数据,使用以下:SELECT * FROM `table` ORDER BY RAND() LIMIT 5就可以了。但是真正测试一下才发现这样效率非常低。一个15万余条的库,查询5条数据,居然要8秒以上搜索Google,网上基本上都是查询max(id) * rand()来随机获取数据。SELECT * FROM `table` AS t1 JOIN转载 2015-01-08 12:22:43 · 1442 阅读 · 0 评论 -
mysql_ping 阻塞问题
现象当然是mysql_ping 阻塞,如下图所示:可以通过设置读取超时来解决。int time_out = 1;mysql_options(mysql,MYSQL_OPT_READ_TIMEOUT,(const char*)&time_out);//There areretries if necessary, so the total effec转载 2015-03-24 16:46:52 · 3379 阅读 · 0 评论 -
mysql数据备份导入导出详解
1、mysqldump 命令工具说明参数注解:mysqldump 是采用SQL 级别的备份机制,它将数据表导成 SQL 脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法。现在来讲一下 mysqldump 的一些主要参数:--compatible=name 它告诉 mysqldump ,导出的数据将和哪种数据库或哪个旧版本的 MySQL 服务原创 2015-04-23 16:15:07 · 2689 阅读 · 0 评论 -
报错:1130-host ... is not allowed to connect to this MySql server
报错:1130-host ... is not allowed to connect to this MySql server解决方法:1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhos原创 2014-04-17 19:05:45 · 1710 阅读 · 0 评论 -
MySQL 修改用户密码及重置root密码
转自:http://blog.csdn.net/leshami/article/details/39805839为数据库用户修改密码是DBA比较常见的工作之一。对于MySQL用户账户的密码修改,有几种不同的方式,推荐的方式使用加密函数来修改密码。本文主要描述了通过几种不同的方式来修改用户密码以及mysql root账户密码丢失(重置root密码)的处理方法。转载 2015-05-23 16:47:44 · 811 阅读 · 0 评论 -
MYSQL查询大小写是否敏感问题分析
转自mysql数据库在做查询的时候,有时候是英文字母大小写敏感的,有时候又不是的,主要是由mysql的字符校验规则的设置决定的,通常默认是不支持的大小写字母敏感的。 1. 什么是字符集和校验规则?字符集是一套符号和编码。校对规则是在字符集内用于比较字符的一套规则。任何一个给定的字符集至少有一个校对规则,它可能有几个校对规则。要想列出一个字符集的校对规则转载 2014-11-20 17:21:08 · 1229 阅读 · 0 评论