摘要:数据库的操作通常为写和读,就是所说的CRUD:增加(Create)、读取(Read)、更新(Update)和删除(Delete)。事务就是一件完整要做的事情。事务是恢复和并发控制的基本单位。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。事务在关系数据库中,一个事务可以是一条
阅读全文
随笔分类 - Mysql
摘要:数据库的操作通常为写和读,就是所说的CRUD:增加(Create)、读取(Read)、更新(Update)和删除(Delete)。事务就是一件完整要做的事情。事务是恢复和并发控制的基本单位。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。事务在关系数据库中,一个事务可以是一条
阅读全文
摘要:军规:必须使用UTF8字符集 和DBA负责人确认后,纠正为“新库默认使用utf8mb4字符集”。 这点感谢网友的提醒,utf8mb4是utf8的超集,emoji表情以及部分不常见汉字在utf8下会表现为乱码,故需要升级至utf8mb4。 默认使用这个字符集的原因是:“标准,万国码,无需转码,无乱码风
阅读全文
摘要:军规适用场景:并发量大、数据量大的互联网业务 军规:介绍内容 解读:讲解原因,解读比军规更重要 一、基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高 (2)必须使用UTF8字符集 解读:万国码,无需转码,无乱码风险,节省空间
阅读全文
摘要:文章分为以下几个要点 下面讨论的都是基于MySQL的InnoDB。 0. 问题描述以及解决过程 因为涉及到公司利益问题,所以下面很多代码和数据库信息,进行了缩减和修改,望见谅。 业务场景是优惠券系统规则规定了一个优惠券活动最多可发行多少张优惠券和每个用户最多可领取优惠券数量。 下面列出两张表的结构。
阅读全文
摘要:问题描述: 一个优惠券活动,用户可以领取优惠券,但是一个优惠券活动领取数量有限制,所以用户在领取的时候就需要先统计一下以领用的优惠券数量。 然后在生成这张优惠券领取记录。那么此时就会出现并发问题,当多个用户领取同一个优惠券活动的时候,他们统计的优惠券已领数量小于限定可领取数量,所以都可以执行生成 优
阅读全文
摘要:之前写了一篇博客 http://leihuang.org/2015/07/22/concurrence-lock/ 就是如何利用乐观锁来解决并发问题,但是项目推到线上后就报错了,如下 -08-13 15:12:44 [ERROR] com.zhubajie.coupon.app.CouponRece
阅读全文
摘要:安装前首先安装依赖的软件包 yum install make gcc g++ gcc-c++ libtool autoconf automake imake libxml2-devel expat-devel 在Linux、BSD上安装Sphinx/Coreseek $ wget http://ww
阅读全文
摘要:Slave_SQL_Running: No mysql同步故障解决 今天检查数据库发现一台MySQL Slave未和主机同步,查看Slave状态:mysql> show slave status\GSlave_IO_Running: YesSlave_SQL_Running: NoLast_Errn
阅读全文
摘要:1、主从服务器分别作以下操作: 1.1、版本一致 1.2、初始化表,并在后台启动mysql 1.3、修改root的密码2、修改主服务器master: #vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 server-id=222 //[必
阅读全文
摘要:UPDATE mall_order moLEFT JOIN mall_order_goods mog ON mo.id = mog.order_idSET mo.ratio=0.08WHERE mog.brand_id IN (409,417) UPDATE mall_order moLEFT JO
阅读全文
摘要:今天在编程的时候,学习了replace into的用法,真的很好用,是insert into的增强版。在向表中插入数据时,我们经常会遇到这样的情况:1、首先判断数据是否存在;2、如果不存在,则插入;3、如果存在,则更新。在SQLServer中可以这样处理:if not exists (select ...
阅读全文
摘要:mysql查询在一张表不在另外一张表的记录问题:查询一个表(tb1)的字段记录不在另一个表(tb2)中 条件:tb1的字段key的值不在tbl2表中 ---------------------- 最原始的写法: select A.* from tbl1 A where A.key ...
阅读全文
摘要:一、数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x) 返回大于x的最小整数值EXP(x) 返回值e(自然对数的底)的x次方FLOOR(x) 返回小于x的最大整数值GREATEST(x1,x2,...,xn)返回集合中最大的值...
阅读全文
摘要:最近提到一个需求。需要记录app用户在使用app中的移动轨迹,即坐标值。每分钟上传一次XY坐标,有点类似跑步软件的描线轨迹。不考虑app如何获取,反正api只要接受到坐标数据 就记录下来保存到数据库。接口接收3个参数X,Y,uid1,建个新库。test 无论你是云DB还是同服务器下都可以1 'DB_...
阅读全文
摘要:为什么要分表首先要知道什么情况下,才需要分表个人觉得单表记录条数达到百万到千万级别时就要使用分表了,分表的目的就在于此,减小数据库的负担,缩短查询时间.表分割有两种方式: 1水平分割:根据一列或多列数据的值把数据行放到两个独立的表中。水平分割通常在下面的情况下使用:表很大,分割后可以降低在查询时需...
阅读全文
摘要:一.什么是MERGE引擎MERGE存储引擎把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询。二.应用场景如果需要把日志纪录不停的录入MySQL数据库,并且每天、每周或者每个月都创建一个单一的表,而且要时常进行来自多个表的合计查询,MERGE表这时会非常简单有效。三.举例假...
阅读全文
摘要:假如我有下面的表:IDItem statusupdatetimeauthor1a12014-01-02 Mike2a12014-02-01 Jack3b22014-01-10 John4b12014-10-10 Ben5b22014-01-11 Sam6c32014-01-02 Aron7c1201...
阅读全文
摘要:select * from hengtu_demandpush a where (a.did,a.mid) in (select did,mid from hengtu_demandpush group by did,mid having count(*) > 1) 或select * from h...
阅读全文
摘要:类如 有一个帖子的回复表,posts( id , tid , subject , message ,dateline ) ,id 为 自动增长字段, tid为该回复的主题帖子的id(外键关联),subject 为回复标题, message 为回复内容, dateline 为回复时间,用UNIX 时间...
阅读全文
|