
深入浅出高性能Mysql
文章平均质量分 86
Mysql架构、Schema与数据类型优化、创建高性能索引、查询性能优化
木唯韵
这个作者很懒,什么都没留下…
展开
-
深入浅出高性能Mysql之查询性能优化
如果你希望变量是整数类型,那么最好在初始化的时候就赋值为0,如果希望是浮点型则赋值为0.0,如果希望是字符串则赋值为",用户自定义变量的类型在赋值的时候会改变。MySQL可以通过索引进行排序,当不能使用索引生成排序结果的时候,MySQL需要自己进行排序,如果数据量小则在内存中进行,如果数据量大则需要使用磁盘,MySQL将这个过程统一称为文件排序,即使完全是内存排序不需要任何磁盘文件时也是如此。在5.0之前的版本,是大小写敏感的,所以要注意代码在不同MySQL版本间的兼容性问题。原创 2023-03-09 11:12:55 · 466 阅读 · 0 评论 -
深入浅出高性能Mysql之创建高性能索引
全文索引是一种特殊类型的索引,它查找的是文本中的关键词,而不是直接比较索引中的值。“独立的列”是指索引列不能是表达式的一部分,也不能是函数的参数。例如,如果在某个选择性很低(哈希冲突很多)的列上建立哈希索引,那么当从表中删除一行时,存储引擎需要遍历对应哈希值的链表中的每一行,找到并删除对应行的引用,冲突越多,代价越大。索引的选择性是指,不重复的索引值(也称为基数,cardinality)和数据表的记录总数(#T)的比值,范围从1/#T到1之间。唯一索引的选择性是1,这是最好的索引选择性,性能也是最好的。原创 2023-03-09 11:09:54 · 122 阅读 · 0 评论 -
深入浅出高性能Mysql之Schema与数据类型优化
选择优化的数据类型 MySQL存储数据的几个简单的原则:更小的通常更好一般情况下,应该尽量使用可以正确存储数据的最小数据类型。更小的数据类型通常更快,因为他们占用更少的磁盘、内存和CPU缓存,并且处理时需要的CPU周期也更少。 简单就好简单数据类型的操作通常需要更少的CPU周期。 尽量避免NULL很多表都包含可为NULL(空值)的列,即使应用程序并不需要保存NULL也是如此,这是因为可为NULL是列的默认属性。通常情况下最好指定列为NOT NULL,除非真的需要存储NULL值。如果查询中包含可为NULL原创 2023-03-09 11:09:01 · 178 阅读 · 0 评论 -
深入浅出高性能Mysql之Mysql架构
另外,写锁也比读锁有更高的优先级,因此一个写锁请求可能会被插入到读锁队列的前面(写锁可以插入到锁队列中读锁的前面,反之读锁则不能插入到写锁的前面)。这个级别会导致很多问题,从性能上来说,READ UNCOMMITTED不会比其他的级别好太多,但却缺乏其他级别的很多好处,除非真的有非常必要的理由,在实际应用中一般很少使用。幻读,指的是当某个事务在读取某个范围内的记录时,另外一个事务又在该范围内插入了新的记录,当之前的事务再次读取该范围的记录时,会产生幻行(Phantom Row)。原创 2023-03-09 11:05:38 · 224 阅读 · 0 评论