随笔分类 - MySQL

MySQL
MySQL-优化之 index merge(索引合并)
摘要: 深入理解 index merge 是使用索引进行优化的重要基础之一。理解了 index merge 技术,我们才知道应该如何在表上建立索引。 1. 为什么会有index merge 我们的 where 中可能有多个条件(或者join)涉及到多个字段,它们之间进行 AND 或者 OR,那么此时就有可能阅读全文

posted @ 2017-01-09 12:04 John_ABC 阅读(540) | 评论 (0) 编辑

MySQL-负载很高排查思路
摘要: 工欲善其事必先利其器,我说一下思路 思路:1、确定高负载的类型 htop,dstat命令看负载高是CPU还是IO2、监控具体的sql语句,是insert update 还是 delete导致高负载3、检查mysql日志4、检查硬件问题 dstat 可以看到具体是哪个用户哪个进程占用了相关系统资源,当阅读全文

posted @ 2016-10-11 11:30 John_ABC 阅读(9334) | 评论 (0) 编辑

MySQL-使用tcpdump排查MySQLl数据库tps飙升的问题
摘要: 可以直接输出 也可以保存到文件,使用grep、awk等分析阅读全文

posted @ 2016-10-10 09:23 John_ABC 阅读(944) | 评论 (0) 编辑

MySQL-分库分表-分页思考
该文被密码保护。

posted @ 2016-08-03 13:48 John_ABC 阅读(2) | 评论 (0) 编辑

MySQL-安全对调两个表名
摘要: 我们想要的是同时完成表名对调,如果是先后的对掉,用RENAME的话可能会导致有些数据写入失败,那怎么办? 其实也不难,从MySQL手册里就能找到方法,那就是:同时锁定2个表,不允许写入,然后对调表名。 我们通常只锁一个表,那么同时锁两个表应该怎么做呢,可以用下面的方法: 两个表同时加表级写锁,然后用阅读全文

posted @ 2016-03-24 10:04 John_ABC 阅读(47) | 评论 (0) 编辑

MySQL-sqlmap常用参数的中文解释
摘要: #HiRoot's BlogOptions(选项):--version 显示程序的版本号并退出-h, --help 显示此帮助消息并退出-v VERBOSE 详细级别:0-6(默认为1)Target(目标):以下至少需要设置其中一个选项,设置目标URL。-d DIRECT 直接连接到数据库。-u U...阅读全文

posted @ 2015-10-23 11:37 John_ABC 阅读(234) | 评论 (0) 编辑

MySQL-MySQL技巧
该文被密码保护。

posted @ 2015-10-12 16:02 John_ABC 阅读(13) | 评论 (0) 编辑

MySQL-配置优化技巧
摘要: 一、连接请求配置 1.查询当前连接数(show full processlist) 2.最大连接数(max_connections) max_connections, 增加该值增加 mysqld 要求的文件描述符的数量, 如果服务器的并发连接请求量比较大, 建议调高此值, 以增加并行连接数量, 当然阅读全文

posted @ 2015-03-31 22:11 John_ABC 阅读(172) | 评论 (0) 编辑

MySQL-乐观锁
摘要: 悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样对数据库性能开销影响也很大,特别是对长事务而言,这样的开销往往无法承受。所以与悲观锁相对的,我们有...阅读全文

posted @ 2015-03-31 17:48 John_ABC 阅读(551) | 评论 (0) 编辑

MySQL-悲观锁
摘要: 悲观锁介绍(百科): 悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中, 将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中阅读全文

posted @ 2015-03-31 17:46 John_ABC 阅读(282) | 评论 (0) 编辑

MySQL-常用命令
摘要: 0.导入大文件 1.查看数据库状态 2.查看数据库当前连接等信息 直接SHELL: 或者进入MySQL的命令行模式: 或: 如下: 3.查看有多少由于客户没有正确关闭连接而死掉的连接数 4.查看当前失败连接数 5.查看最大连接数 6.查看InnoDB死锁相关状况 7.查看从服务器是否能跟上主服务器步阅读全文

posted @ 2015-03-31 15:21 John_ABC 阅读(101) | 评论 (0) 编辑

MySQL-锁研究
摘要: 隔离级别研究: http://www.cnblogs.com/JohnABC/p/3521061.html表级:引擎 MyISAM, 理解为锁住整个表, 锁定期间, 其它进程无法对该表进行写操作, 如果是读锁, 其他进程可以同时读, 如果是写锁, 则其它进程则读也不允许行级:引擎 INNODB, 单...阅读全文

posted @ 2015-03-30 11:21 John_ABC 阅读(642) | 评论 (0) 编辑

MySQL-EXPLAIN用法详解
摘要: 今天做一个订单任务, 其中需要查有无此订单号信息, 由于订单号是个列表, 所以想检测下如下语句的性能(主要在LIMIT 1上) 然后就复习了下EXPLAIN的用法: explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。 使用方法,阅读全文

posted @ 2014-10-28 11:53 John_ABC 阅读(74) | 评论 (0) 编辑

PHP-并发
该文被密码保护。

posted @ 2014-10-15 18:24 John_ABC 阅读(149) | 评论 (0) 编辑

MySQL-LAST_INSERT_ID();使用注意事项
摘要: 第一、查询和插入所使用的Connection对象必须是同一个才可以,否则返回值是不可预料的。mysql> SELECT LAST_INSERT_ID(); -> 100使 用这函数向一个给定Connection对象返回的值是该Connection对象产生对影响AUTO_INCREMENT列的最新语句...阅读全文

posted @ 2014-05-14 09:59 John_ABC 阅读(640) | 评论 (0) 编辑

MySQL-事务隔离级别设置
摘要: 加锁研究:http://www.cnblogs.com/JohnABC/p/4377529.html 先了解下 第一类丢失更新、脏读、不可重复读、幻读、第二类丢失更新 第一类丢失更新 撤销一个事务时, 把其他事务已经提交的更新数据覆盖(此情况在事务中不可能出现, 因为一个事务中修改时此记录已加锁, 阅读全文

posted @ 2014-01-15 16:25 John_ABC 阅读(21909) | 评论 (2) 编辑

MySQL-关于事务的使用
摘要: 如果你一次执行单条查询语句, 则没有必要启用事务支持, 数据库默认支持SQL执行期间的读一致性, 如果你一次执行多条查询语句, 例如统计查询, 报表查询, 在这种场景下, 多条查询SQL必须保证整体的读一致性, 否则, 在前条SQL查询之后, 后条SQL查询之前, 数据被其他用户改变, 则该次整体的统计查询将会出现读数据不一致的状态, 此时, 应该启用事务支持阅读全文

posted @ 2013-11-21 15:06 John_ABC 阅读(52) | 评论 (0) 编辑

MySQL-存储过程
摘要: 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译, 然后执行; 而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集, 经编译后存储在数据库中, 用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 一个存储过程是一个可编程的函数, 它阅读全文

posted @ 2013-09-22 13:01 John_ABC 阅读(179) | 评论 (0) 编辑

MySQL-五种日志(查询日志、慢查询日志、更新日志、二进制日志、错误日志)、备份及主从复制配置
摘要: 开启查询日志: 配置文件my.cnf: log=/usr/local/mysql/var/log.log开启慢查询: 配置文件my.cnf: log-slow-queries=/usr/local/mysql/var/slow.log #注意减号或者下划线 long_query_time=2更新日志: 配置文件my.cnf: log-update=/usr/local/mysql/var/update.log错误日志: 配置文件my.cnf: log-error=/usr/local/mysql/var/error.log开启bin-log日志(不是每次...阅读全文

posted @ 2013-09-21 12:36 John_ABC 阅读(334) | 评论 (0) 编辑

MySQL-查询结果缓存
摘要: 众所周知,系统读取数据时,从内存中读取要比从硬盘上速度要快好几百倍。故现在绝大部分应用系统,都会最大程度的使用缓存(内存中的一个存储区域),来提高系统的运行效率。MySQL数据库也不例外。在这里,笔者将结合自己的工作经验,跟大家探讨一下,MySQL数据库中缓存的管理技巧:如何合理配置MySQL数据库缓存,提高缓存命中率。 合理配置MySQL缓存 提高缓存命中率 什么时候适用MySQL缓存 对于一些不常改变数据且有大量相同sql查询的表,查询缓存会节约很大的性能。 一、什么时候应用系统会从缓存中获取数据? 数据库从服务器上读取数据时,可以从硬盘的数据文件中获取数据,也可以从数据...阅读全文

posted @ 2013-09-10 18:46 John_ABC 阅读(2390) | 评论 (0) 编辑

MySQL-SQL语句中SELECT语句的执行顺序
摘要: SELECT语句的执行顺序大家比较少关注,下面将为您详细介绍SQL语句中SELECT语句的执行顺序,供您参考,希望对您能够有所帮助。SELECT语句的执行的逻辑查询处理步骤:(8)SELECT (9)DISTINCT(11) (1)FROM (3) JOIN (2) ON (4)WHERE (5)GROUP BY (6)WITH {CUBE | ROLLUP}(7)HAVING (10)ORDER BY 每个步骤产生一个虚拟表,该虚拟表被用作下一个步骤的输入。只有最后一步生成的表返回给调用者。如果没有某一子句,则跳过相应的步骤。1. FROM:对FROM子句中的前两个表执行笛卡尔积,生成虚..阅读全文

posted @ 2013-09-09 09:08 John_ABC 阅读(1355) | 评论 (0) 编辑

导航

公告