![](https://img-blog.csdnimg.cn/20191018154605701.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
sql
sisi.li8
热爱技术,拥抱开源
展开
-
mysql 索引过长1071-max key length is 767 byte
问题create table: Specified key was too long; max key length is 767 bytes原因数据库表采用utf8编码,其中varchar(255)的column进行了唯一键索引而mysql默认情况下单个列的索引不能超过767位(不同版本可能存在差异)于是utf8字符编码下,255*3 byte 超过限制...转载 2018-06-21 02:02:25 · 2036 阅读 · 0 评论 -
mysql行级锁与表级锁
页级:引擎 BDB。表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行行级:引擎 INNODB , 单独的一行记录加锁表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许行级,,仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中的其它记录进行操作。页级,表级锁速度快,但冲突多,行级冲突少,但速度慢。所以取了折...转载 2018-06-21 00:03:17 · 4816 阅读 · 0 评论 -
SQL 优化
SQL 优化负向查询不能使用索引select name from user where id not in (1,3,4);应该修改为:select name from user where id in (2,5,6);前导模糊查询不能使用索引如:select name from user where name like '%zhangsan'非前导则可以:select n...原创 2018-11-23 21:48:27 · 103 阅读 · 0 评论 -
MySQL 索引原理
MySQL 索引原理现在互联网应用中对数据库的使用多数都是读较多,比例可以达到 10:1。并且数据库在做查询时 IO 消耗较大,所以如果能把一次查询的 IO 次数控制在常量级那对数据库的性能提升将是非常明显的,因此基于 B+ Tree 的索引结构出现了。B+ Tree 的数据结构如图所示是 B+ Tree 的数据结构。是由一个一个的磁盘块组成的树形结构,每个磁盘块由数据项和指针组成。所...原创 2018-11-23 21:47:51 · 328 阅读 · 0 评论 -
一文理解SQL inner join、left join、right join、full outer join、union、union all的区别
对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过文氏图 Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。假设我们有两张表。Table A 是左边的表。Table B 是右边的表。其各有...原创 2019-04-03 22:29:36 · 585 阅读 · 0 评论