随笔分类 -  SQL

上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 31 下一页
摘要:关于mysql事务行锁for update实现写锁的功能 读后感:用切面编程的理论来讲,数据库的锁对于业务来说是透明的。spring的事务管理代码,业务逻辑代码,表锁,应该是三个不同的设计层面。 在电子商务里,经常会出现库存数量少,购买的人又特别多,大并发情况下如何确保商品数量不会被多次购买. 其实 阅读全文
posted @ 2018-07-25 11:23 星朝 阅读(1509) 评论(0) 推荐(0)
摘要:1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方即 128到127,无符号从 0 到 255 的整型数据。 TINYINT[(M)] [UNSIGNED] [ZEROFILL]   M默认为4 很小的整数,存储大小为 1 字节。带符号的范围是 2^7 ( 128 阅读全文
posted @ 2018-07-19 15:04 星朝 阅读(719) 评论(0) 推荐(0)
摘要:当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的 阅读全文
posted @ 2018-07-19 13:52 星朝 阅读(276) 评论(0) 推荐(0)
摘要:认证概念: 服务器需要通过某种方式来了解用户的身份,一旦服务器知道了用户的身份,就可以判定用户可以访问事务和资源了;通常通过用户名和密码; HTTP响应/认证框架 HTTP认证模型: 质询/响应认证框架 HTTP的两个官方的认证协议:基本认证和摘要认证 认证的四个步骤: 请求: 客户端发起一条请求; 阅读全文
posted @ 2018-06-27 10:51 星朝 阅读(981) 评论(0) 推荐(0)
摘要:因为之前用过oracle,知道利用select for update 可以锁表。所以很自然就想到在mysql中能不能适应for update来锁表呢。 学习参考如下  由于InnoDB预设是Row Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁 阅读全文
posted @ 2018-06-25 18:09 星朝 阅读(1125) 评论(0) 推荐(0)
摘要:       悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制 阅读全文
posted @ 2018-06-25 18:08 星朝 阅读(476) 评论(0) 推荐(0)
摘要:Select …forupdate语句是我们经常使用手工加锁语句。通常情况下,select语句是不会对数据加锁,妨碍影响其他的DML和DDL操作。同时,在多版本一致读机制的支持下,select语句也不会被其他类型语句所阻碍。   借助for update子句,我们可以在应用程序的层面手工实 阅读全文
posted @ 2018-06-25 17:55 星朝 阅读(6128) 评论(0) 推荐(1)
摘要:近期有一个业务需求,多台机器需要同时从Mysql一个表里查询数据并做后续业务逻辑,为了防止多台机器同时拿到一样的数据,每台机器需要在获取时锁住获取数据的数据段,保证多台机器不拿到相同的数据。 我们Mysql的存储引擎是innodb,支持行锁。解决同时拿数据的方法有很多,为了更加简单,不增加其他表和服 阅读全文
posted @ 2018-06-25 17:46 星朝 阅读(2305) 评论(0) 推荐(1)
摘要:——————————— Oracle —————————————————– Oracle 的for update行锁 键字: oracle 的for update行锁 SELECT…FOR UPDATE 语句的语法如下: SELECT … FOR UPDATE [OF column_list][WA 阅读全文
posted @ 2018-06-25 17:44 星朝 阅读(29230) 评论(0) 推荐(0)
摘要:php mysql lock tables 使用有感 mysql 的 表锁 lock tables 感觉就像一个 封闭的空间 mysql发现 lock tables 命令的时候,会将带有锁标记的表(table) 带入封闭空间,直到 出现 unlock tables 命令 或 线程结束, 才关闭封闭空 阅读全文
posted @ 2018-06-22 18:18 星朝 阅读(10415) 评论(0) 推荐(2)
摘要:mysql在执行sql的时候会在日志当中记录很多信息,当然包括执行的所有语句。下面以使用navicat for mysql为例,来展示一下如何打开/查看MySQL的SQL记录:打开navicat for mysql,并连接到数据库,选择一个要操作的数据库。点击左上角的【工具】,选择历史日志选项,或者 阅读全文
posted @ 2018-06-22 18:06 星朝 阅读(5141) 评论(0) 推荐(0)
摘要:程式 Debug 有時後從前面第一行追起來很辛苦(程式碼太多或 compile 過), 另一種做法就是從後面追起來, 反正最後寫入的是 DB, 那就從 DB 開始往前推, 所以就是要抓程式是執行哪些 SQL 語法.(以下只以 MySQL 為主) 之前用過的追蹤法是用 tcpdump 或 wiresh 阅读全文
posted @ 2018-06-22 18:04 星朝 阅读(646) 评论(0) 推荐(0)
摘要:最近给客户开发了基于Asp.Net mvc5 +Mysql+EF的项目,但是在EF里无法看到Mysql执行的语句之前也找到一些监控Mysql的软件但一直没有用起来,现在又遇到了问题即在EF里Mysal的查询没有结果而在Mysql里没有问题因为不知道EF生成的Mysql语句所以不知道是不是Sql的问题 阅读全文
posted @ 2018-06-22 18:02 星朝 阅读(3991) 评论(0) 推荐(0)
摘要:http://qq85609655.iteye.com/blog/2113960   1)我们先通过status命令查看Mysql运行状态 mysql> status; mysql Ver 14.14 Distrib 5.1.73, for redhat linux gnu (x86 阅读全文
posted @ 2018-06-22 17:30 星朝 阅读(766) 评论(0) 推荐(0)
摘要:processlist命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令。1.      进入mysql/bin目录下输入mysqladmin processlist;2.  &n 阅读全文
posted @ 2018-06-22 17:14 星朝 阅读(2212) 评论(0) 推荐(0)
摘要:案例描述在定时脚本运行过程中,发现当备份表格的sql语句与删除该表部分数据的sql语句同时运行时,mysql会检测出死锁,并打印出日志。两个sql语句如下:(1)insert into backup_table select from source_table(2)DELETE FROM sourc 阅读全文
posted @ 2018-06-22 16:43 星朝 阅读(471) 评论(0) 推荐(0)
摘要:MySQL有以下几种日志: 错误日志: log err 查询日志: log 慢查询日志: log slow queries 更新日志: log update 二进制日志: log bin 默认情况下,所有日志创建于mysqld数据目录中。通过刷新日志,你可以强制 mysqld来关闭和重新打开日志文件 阅读全文
posted @ 2018-06-22 16:41 星朝 阅读(13637) 评论(0) 推荐(0)
摘要:注:以下内容为根据《高性能mysql第三版》和《mysql技术内幕innodb存储引擎》的innodb status部分的个人理解,如果有错误,还望指正!! innodb存储引擎在show engine innodb status(老版本对应的是show innodb status)输出中,显示除了 阅读全文
posted @ 2018-06-22 15:33 星朝 阅读(1013) 评论(0) 推荐(0)
摘要:1    死锁问题背景    1 1.1    一个不可思议的死锁    1 1.1.1    初步 阅读全文
posted @ 2018-06-22 15:15 星朝 阅读(356) 评论(0) 推荐(0)
摘要:  1    背景    1 1.1    MVCC:Snapshot Read vs Current Read    2 1.2 阅读全文
posted @ 2018-06-22 15:14 星朝 阅读(222) 评论(0) 推荐(0)

上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 31 下一页