MySQL
文章平均质量分 96
MySQL
curd_boy
热爱编程,喜欢探索新技术
展开
-
【数据库篇】MySQL知识点
如果比较2个字符串的字符集不同,MySQL会先将其转成同一个字符集再进行比较,如果2个字符集不兼容,则会出错。Mysql5.0以后的版本会做隐式转换。还可以使用前缀和collate子句来指定字符串的字符集和校对字符集。这里有一个通用原则可以供我们使用:先为服务器或者数据库选择一个合理的字符集,然后根据不同的实际情况,让某个列选择自己的字符集。原来对于数字与非数字混合的字符串,在进行大小比较的时候,如果两字符串长度相等,那么两字符串就会比较相同位置的字符,比较时若字符是数字,则直接比较,原创 2023-02-07 21:56:14 · 1624 阅读 · 0 评论 -
【数据库篇】MySQL 事务篇
之所以出现快照读的情况,是基于提高并发性能的考虑,快照读的实现是基于多版本并发控制,即MVCC,可以认为MVCC是行锁的一个变种,但它在很多情况下,避免了加锁操作,降低了开销;MVCC 的目的就是多版本并发控制,在数据库中的实现,就是为了解决读写冲突,它的实现原理主要是依赖记录中的 3个隐式字段,undo日志 ,Read View(读视图) 来实现的。不可重复读:事务A首先读取了一条数据,然后执行逻辑的时候,事务B将这条数据改变了,然后事务A再次读取的时候,发现数据不匹配了,就是所谓的不可重复读了。原创 2022-09-20 23:13:26 · 1227 阅读 · 0 评论 -
【数据库篇】MySQL基础知识
IO多路复用技术redis 采用网络IO多路复用技术来保证在多连接的时候, 系统的高吞吐量。多路-指的是多个socket连接,复用-指的是复用一个线程。多路复用主要有三种技术:select,poll,epoll。epoll是最新的也是目前最好的多路复用技术。这里“多路”指的是多个网络连接,“复用”指的是复用同一个线程。采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络IO的时间消耗),且Redis在内存中操作数据的速度非常快(内存内的操作不会成为这里的性能瓶颈),主要以上两点原创 2021-01-10 16:48:42 · 491 阅读 · 1 评论 -
【数据库篇】MySQL日志 & 存储 & 缓存篇
1. 原理MySQL之间数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后...原创 2020-01-30 20:44:42 · 356 阅读 · 1 评论 -
【MySQL】各个版本优化
表结构设计用空间换时间:适当增加冗余字段节省查询开销,如设计房屋出租总数,按其排序三范式:Django优化数据库优化将orm模型类的查找慢的,手写Sql,使用索引,sql语句遵循关键字最左原则联合索引要求更严格,要求顺序跟建表时一样外键保证数据的完整性父表无法删除其内容,因为有外键所在的子表。如果想删除父表中的记录,可以使用cascade级联,父表某一值删除,直接删除与其...原创 2020-03-14 16:35:56 · 486 阅读 · 1 评论