最近 MySQL 数据库经常报错 Duplicate key 的错误,虽然我已经在 Insert 之前使用 query 进行了判断,如果已有则更新,但是还是经常会报这个错误,经过一段查询资料,发现 MySQL
总所周知 , innodb 的日志是二阶段提交的,redolog 先在 prepare 阶段写入, binlog 再写入,最后 redolog commit 这其中 redolog 的刷入时机是由...binlog 的刷入时机是由 sync_binlog 参数控制的,设置为 N ,表示每 N 次事务提交 会刷入一次硬盘, 如果设置为 0 只会写入 os cache 具体的 ,innodb_flush_log_at_trx_commit
来源:http://www.telami.cn/2018/when-mysql-batch-inserts-and-how-to-not-insert-duplicate-data/ 温故而知新 业务很简单...user (name) SELECT 'telami' FROM dual WHERE NOT EXISTS (SELECT id FROM user WHERE id = 1) 这种方法其实就是使用了mysql...这样在批量插入时,如果存在手机号相同的话,是不会再插入了的。
user (name) SELECT 'telami' FROM dual WHERE NOT EXISTS (SELECT id FROM user WHERE id = 1) 这种方法其实就是使用了mysql...这样在批量插入时,如果存在手机号相同的话,是不会再插入了的。...来源:http://www.telami.cn/2018/when-mysql-batch-inserts-and-how-to-not-insert-duplicate-data/
user (name) SELECT 'telami' FROM dual WHERE NOT EXISTS (SELECT id FROM user WHERE id = 1) 这种方法其实就是使用了mysql...这样在批量插入时,如果存在手机号相同的话,是不会再插入了的。
(重点优化) 2.2 MySQL体系结构 分三层:客户端->服务层->存储引擎 ? 1、 MySQL是插件式的存储引擎,其中存储引擎分很多种。...只要实现符合mysql存储引擎的接口,可以开发自己的存储引擎! 2、所有跨存储引擎的功能都是在服务层实现的。 3、MySQL的存储引擎是针对表的,不是针对库的。...2.3.2 (MySQL5.5默认)系统表空间与( MySQL5.6及以后默认)独立表空间 1、系统表空间无法简单的收缩文件大小,造成空间浪费,并会产生大量的磁盘碎片。...内存的使用上限不能超过物理内存,否则容易造成内存溢出;(对于32位操作系统,MySQL只能试用3G以下的内存 确定MySQL的每个连接 单独使用的内存。...MySQL数据库实例: MySQL是单进程多线程(而oracle是多进程),也就是说 MySQL实例在系统上表现就是一个服务进程,即进程; MySQL实例是线程和内存组成,实例才是真正用于操作数据库文件的
MySQL技术点导图总结为《 MySQL实战45讲》学习后的MySQL技术点梳理:主要包含:事务隔离、数据库锁、索引、日志模块、常用命令等。帮助DBA、或后台开发同学更好的了解MySQL的实现原理。
而本文将基于Mysql-PHP,以思维导图为主线,介绍导图中生僻知识点的同时,也会引入一些实战性的CTF练习题,供大家实验。...SQLi思维导图的正确打开方式 由于图片大小的问题,请大家移步到下面的地址访问: SQLi注入思维导图 http://104.194.90.209:2501/tmp_picture/Sum_SQLi.png...导图中的生僻技巧 此部分从上到下,对导图中较为生僻地知识点进行讲解。...对于php-mysql来说,通过PDO_MYSQL和MYSQLi方式与数据库交互地可以使用堆叠注入,但通过mysql_query进行交互的不可以。...字符编码绕过技巧详解传送门 https://www.leavesongs.com/PENETRATION/mysql-charset-trick.html 绕过空格过滤 绕过空格部分,在导图中特殊字符用
研发同学反馈查询速度慢且排序不稳定。 排序不稳定的具体现象,有不少记录存在相同权重值,某条记录(假设id=100)第一页出现了,翻到第二页可能还有它(采用的limit控制哪一页)。 第1页数据 ?...赶紧搜索一下MySQL说明文档,第一条是排序优化 ? 文档中有这么一句话“如果索引不能满足ORDERBY子句,MySQL将执行文件排序(filesort)操作,读取数据行并对其进行排序。...MySQL文档中有这么一句话 “该查询连接了许多表,并且ORDER BY中的列并非全部来自用于检索行的第一个非恒定表。”,满足这类型的SQL也不能利用索引排序。这就是文章开头的例子。...这个说法显然与MySQL官方文档不一致。我觉得,这个语句能不能使用索引,跟数据库引擎根据开销决定是否检索的阶段使用索引有关。...MySQL官方建议可以调大排序缓存参数sort_buffer_size,MySQL 8.0还对缓存利用率做了优化,调大一点也不浪费。以前版本的MySQL可以求助DBA。
在一个低配MySQL数据库(笔记本电脑虚机环境,虚机配置2CPU/3G内存),在3000万级别的大量数据LOAD DATA方式导入时,坚持一小时后,终于被KO了,甚至没写下任何有用的日志,只是在操作界面报错...:ERROR 2013 (HY000): Lost connection to MySQL server during query再次重启,漫长的半小时时间,遇见这个activating状态:[root...@node1:1 ~]# systemctl status mysql● mysql.service - Percona XtraDB Cluster Loaded: loaded (/usr/lib...└─8422 /usr/sbin/mysqld --user=mysql --log-error-verbosity=3 --wsrep_recover --log_error=/mysql/pxc/......此时在数据库日志没有任何有用的信息,时接近30分钟,才启动成功,可见MySQL在异常退出后在启动时,也会遭遇漫长的恢复过程。
(重点优化) 2.2 MySQL体系结构 分三层:客户端->服务层->存储引擎 ? MySQL是 插件式的存储引擎,其中存储引擎分很多种。...2.3.2 (MySQL5.5默认)系统表空间与( MySQL5.6及以后默认)独立表空间 1.1 系统表空间无法简单的收缩文件大小,造成空间浪费,并会产生大量的磁盘碎片。...2.5.3 锁的粒度 MySQL的事务支持不是绑定在MySQL服务器本身, 而是与存储引擎相关 ?...内存的使用上限不能超过物理内存,否则容易造成内存溢出;(对于32位操作系统,MySQL只能试用3G以下的内存。) 确定MySQL的 每个连接 单独 使用的内存。...MySQL数据库实例: ①MySQL是 单进程多线程(而oracle是多进程),也就是说 MySQL实例在系统上表现就是一个服务进程,即进程; ②MySQL实例是线程和内存组成,实例才是真正用于操作数据库文件的
数据库MySQL(思维导图) 目录 1、数据库基础 1.1、数据库技术的发展 1.2、数据库系统的组成 1.3、数据模型 1.4、关系数据库的规范化 2、MySQL简介 2.1、MySQL的特点 2.2...、命令行连接MySQL 3、数据库操作 3.1、常见名词/概念 3.2、数据库常用对象 3.3、MySQL系统数据库 3.4、常见数据库操作 4、存储引擎及数据类型 4.1、常见的存储引擎 4.2、MySQL...数据类型 5、操作数据表 6、MySQL基础 6.1、运算符 6.2、流程控制语句 7、表数据的增删改查 8、常用函数 1、数据库基础 1.1、数据库技术的发展 1.2、数据库系统的组成 1.3、数据模型...常见的数据库模型: 1.4、关系数据库的规范化 2、MySQL简介 2.1、MySQL的特点 2.2、命令行连接MySQL 3、数据库操作 3.1、常见名词/概念 3.2、数据库常用对象...3.3、MySQL系统数据库 3.4、常见数据库操作 4、存储引擎及数据类型 4.1、常见的存储引擎 4.2、MySQL数据类型 5、操作数据表 6、MySQL基础 6.1、运算符
)') print count # 重置游标的位置 cursor.scroll(0,mode='absolute') # 搜取所有结果 results = cursor.fetchall() # 获取MYSQL...sheet.write(row,col,u'%s'%results[row-1][col]) workbook.save(outputpath) # 测试 if __name__ == "__main__": #mysql-ip
速度很慢 账户密码正确 已关闭防火墙 修改 /etc/my.cnf,添加配置skip-name-resolve [mysqld] skip-name-resolve 在连接远程数据库的时候,直接跳过MySQL
最近在使用java操作远程的mysql数据库的时候,第一次请求非常的慢,而且极其容易引起系统的崩溃报错连接超时 下面就这个问题来解决下把 --------------------------------...--------------------------------- 大部分我们的mysql中的配置信息时这样的(本人的修改过,自查宿主的mysql信息) ?...其中的配置信息,网上也有很多的介绍,这里边就不详细的介绍了, 其中有一个(我这里没有配置)极其重要 wait_timeout 这个属性代表着在多长时间内,mysql不会断开连接,默认的缺省值是8小时(...如果远程服务器的mysql出现了以上的问题就可以用以下的方案来解决(亲测有效!)...反向解析的问题, 也可能导致速度慢, 可以在mysql的配置文件中, 使用以上命令把DNS反向解析关掉.
2019-10-22 07:49:38,浏览2186次 1、使用mysqldump -uroot -p123456 databases > /home/databases.sql 进行备份 2、在使用mysql...-uroot -p123456 databases < /home/databases.sql 进行mysql恢复的时候,出现如下报错。...ERROR at line 137: Unknown command ‘\n’. 3、上述错误,是因为导出时字符集的问题,解决方法如下:–default-character-set=utf8 在导入时加上...mysql -uroot -p123456 –default-character-set=utf8 databases < /home/databases.sql ,就可以了。
(重点优化) 2.2 MySQL体系结构 分三层:客户端->服务层->存储引擎 ? MySQL是插件式的存储引擎,其中存储引擎分很多种。...2.3.2 (MySQL5.5默认)系统表空间与(MySQL5.6及以后默认)独立表空间 1.1 系统表空间无法简单的收缩文件大小,造成空间浪费,并会产生大量的磁盘碎片。...2.5.3 锁的粒度 MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关 ?...内存的使用上限不能超过物理内存,否则容易造成内存溢出;(对于32位操作系统,MySQL只能试用3G以下的内存。) 确定MySQL的每个连接单独使用的内存。...MySQL数据库实例: ①MySQL是单进程多线程(而oracle是多进程),也就是说MySQL实例在系统上表现就是一个服务进程,即进程; ②MySQL实例是线程和内存组成,实例才是真正用于操作数据库文件的
◆ 前言 Mysql插入不重复的数据,当大数据量的数据需要插入值时,要判断插入是否重复,然后再插入,那么如何提高效率?
领取专属 10元无门槛券
手把手带您无忧上云