mysql
汪威
这个作者很懒,什么都没留下…
展开
-
mysql varchar索引问题
我们在varchar建立索引是常常遇到这样的错误:1071 - Specified key was too long; max key length is 767 bytes原创 2021-06-17 09:42:46 · 2530 阅读 · 0 评论 -
MySQL主从复制的几种复制方式
异步复制 多线程复制 增强半同步复制异步复制MySQL的复制默认是异步的,主从复制至少需要两个MYSQL服务,这些MySQL服务可以分布在不同的服务器上,也可以在同一台服务器上。MySQL主从异步复制是最常见的复制场景。数据的完整性依赖于主库BINLOG的不丢失,只要主库的BINLOG不丢失,那么就算主库宕机了,我们还可以通过BINLOG把丢失的部分数据通过手工同步到从库上去。注意:主库宕机的情况下,DBA可以通过mysqlbinlog工具手工访问主库binlog,抽取缺失的日志并同步到从转载 2020-09-20 17:38:54 · 818 阅读 · 0 评论 -
mysql事物嵌套说明
对于mysql的事物嵌套,个人感觉是一个很危险的事情,举例:mysql> select * from test; +------+ | id | +------+ | 1 | +------+ 1 row in set (0.00 sec) mysql> start transaction ; Query OK,原创 2017-08-29 11:58:28 · 404 阅读 · 0 评论 -
浅谈mysql的锁和索引之间莫大的联系
在平时我们用mysql的锁时,一般刚接触数据库是很少考虑锁的效率,一般只求到达防止并发的目的就可以了,但是随着数据量的增大我们就会发现有很多sql我们已经写的非常优化了,但是有时候还是很慢,很难找到原因,这时候我们就应该考虑一下是不是mysql的锁在导致的,(当然可能的原因很多,比如没有正确的建立以及使用索引、事物过长、服务器配置跟不上等等,这里主要讨论索引和锁的联系。)下面我们来举一个例子;原创 2017-08-29 17:00:24 · 4393 阅读 · 0 评论 -
mysql死锁
死锁是指两个或多个事务在同一资源上互相占用,并请求加锁时,而导致的恶性循环现象。当多个事务以不同顺序试图加锁同一资源时,就会产生死锁。任何时间,多个事务同时加锁同一资源,一定产生死锁。例如,设想下列两个事务同时处理StockPrice表:[sql] view plain copy事务1 START TRANSACTION转载 2018-01-10 17:30:15 · 159 阅读 · 0 评论 -
为什么平衡二叉树也不适合作为索引
平衡二叉树树形结构是计算机系统里最重要的数据结构。我们知道,二叉树的查找的时间复杂度是O(log2N),其查找效率与深度有关,而普通的二叉树可能由于内部节点排列问题退化成链表,这样查找效率就会很低。因此平衡二叉树是更好的选择,因为它保持平衡,即通过旋转调整结构保持最小的深度。其查找的时间复杂度也是O(log2N)。但实际上,数据库中索引的结构也并非AVL树或更优秀的红黑树,尽管它的查询的...原创 2018-11-30 18:20:59 · 2352 阅读 · 3 评论 -
group_concat存在的坑以及使用注意点
1、group_concat()有长度限制1024, 需要修改配置group_concat_max_len,如果超过大小会被截断;2、group_concat()可以对这个组的值来进行排序再连接成字符串,eg:GROUP_CONCAT(name ORDER BY id DESC) 3、group_concat()改变分隔符:GROUP_CONCAT(name SEPARATOR '...原创 2019-01-30 17:40:45 · 7777 阅读 · 0 评论 -
数据库常见的优化
一、设计时:表字段避免null值出现,null值很难查询优化且占用额外的索引空间,推荐默认数字0代替null。 尽量使用INT而非BIGINT,如果非负则加上UNSIGNED(这样数值容量会扩大一倍),当然能使用TINYINT、SMALLINT、MEDIUM_INT更好。 使用枚举或整数代替字符串类型 使用TINYINT来代替ENUM :ENUM增加新值要进行DDL操作 尽量使用TIM...原创 2019-06-11 17:48:06 · 2851 阅读 · 0 评论