mysql允许最大sql语句长度配置

mysql允许最大sql语句长度配置

MySQL对于每个客户端连接都会分配连接buffer和结果集发送的buffer,连接buffer主要就是来接受客户端发送过来的sql语句,并且初始分配大小都是 net_buffer_length,可以动态增长,最多可以达到 max_allow_packet大小。这个参数是会话只读的,言外之意就是只能全局修改,新建连接才生效。max_allow_packet是MySQL控制网络包大小的参数,默认是4M。有次可控制一条mysql查询语句大大小,实现mysql慢sql相关优化。


mysql-like模糊查询优化

mysql-like模糊查询优化

sql语句写法

一张表大概40万左右的数据,用like模糊查询title字段,很慢,title字段已经建立了索引,mysql 对 someTitle% 这样的模糊查询在有索引的前提下是很快的。
所以下面这两台sql语句差别就很大了
$sql1 = “… title like someTitle%” (0.001秒)

$sql2 = “…… title like %someTitle%” (0.8秒)

mysql-b+Tree索引

mysql-b+Tree索引

索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。
索引最形象的比喻就是图书的目录了。注意这里的大量,数据量大了索引才显得有意义,如果我想要在 [1,2,3,4] 中找到 4 这个数据,直接对全数据检索也很快,没有必要费力气建索引再去查找。

索引在 MySQL 数据库中分三类:

  • B+ 树索引
  • Hash 索引
  • 全文索引
Redis的内存淘汰策略问题
MyBatis二级缓存
redis分布式锁Redlock的实现
mysql高性能优化规范方法

mysql高性能优化规范方法

数据库命令规范

  • 所有数据库对象名称必须使用小写字母并用下划线分割
  • 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)
  • 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符
  • 临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀
  • 所有存储相同数据的列名和列类型必须一致(一般作为关联列,如果查询时关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索引失效,导致查询效率降低)
常见sql错误写法
mysql索引优化方案
一次数据库的死锁问题排查过程


:D 一言句子获取中...