-
mysql添加索引报错:1071 - Specified key was too long 应该如何解决?
最近在优化项目慢sql,需要对相关表添加索引,不过在添加的时候却报错了,报了:1071 - Specified key was too long; max key length is 767 bytes 错误,是什么原因导致的呢?
-
关于mysql锁机制的简单理解
我们平时在项目开发过程中都会遇到并发问题,可能是系统同一时间的并发请求,同一个接口被请求多次,多个请求同时操作同一条记录,也可能是系统同一时间多个线程操作同一条记录,这些如果一开始没处理好,都会引发并发产生的数据不一致或不准确问题。
-
mysql如何实现类似搜索引擎的FULLTEXT全文索引
现在很多网站都离不开搜索这一块业务,几乎每个网站,不管是什么类型的网站,都会有站内内容搜索框,这样用户就可以根据他们的需要搜索到对应的内容。站内搜索一般都会使用到搜索引擎,例如:Solr,Elasticsearch,或者直接使用Lucene实现。但是像一些用户量不大的网站,像一些公司的内部网站,只有少部分的内部人员使用的,其实就不需要去特意搭建搜索引擎服务了,使用mysql的FULLTEXT全文索引就能实现我们的搜索需求,虽然基于数据库的搜索会对数据库产生一定的压力,但对某些场景还是可以考虑的。
-
mysql中find_in_set()函数应该如何正确使用?
在使用mysql编写SQL语句的时候,有时我们需要查询某个字段值是否在某个范围中,我们通常都会用到in语句,今天接触到一个新的函数,那就是find_in_set(),这个函数和in语句有什么区别呢?我们应该如何正确去使用呢?
-
mysql中group by和order by应该如何正确搭配使用?
最近在项目中碰到比较复杂的业务,需要手动编写复杂的SQL,这时候经常会用到group by和order by,但是如果我们没搞清楚这两个语句的正确用法,会遇到报错或者查询出来的结果不符合需求的情况。
-
mysql应该如何在where语句中添加if语句进行条件判断?where if 语句应该如何使用
我们在平时的项目开发中,有时候会遇到复杂一点的需求,需要我们手动编写复杂的SQL语句,并且有时候需要根据每条表记录的实际情况进行判断,根据每条记录动态添加不同的where条件,这个时候我们就可以在where语句中使用if语句进行条件判断,那么where if应该如何正确使用呢?
-
mysql中count(*)和count(1)以及count(字段名)在不同的情况下应该如何正确使用?
使用mysql的时候,编写SQL语句要统计数据记录条数一般会用到count关键字,count可以指定要统计的字段,我们除了可以count(字段名),其实还可以count(*)或者count(1),那么这三种写法到底有什么区别呢?我们在不同的场景下应该选择使用哪一个比较高效呢?
-
为什么建议使用mysql数据库做delete删除操作在后面带上limit语句?
我们平时一般删除都是直接使用delete语句,不过关于delete语句还有很多值得我们关注的可以优化系统层面的东西,这里记录一下。
-
如何使用mysql默认提供的mysqlbinlog工具解析binlog文件恢复误删或误操作的数据
我们在生产环境上有的时候经常需要恢复数据,把一些用户误操作的数据恢复回来,我们一般会直接借助mysql提供的mysqlbinlog工具来完成,应该如何使用mysqlbinlog工具呢?
-
关于类似mysql的mysqlbinlog的数据库恢复工具binlog2sql的安装和使用
我们一般误删除了生产环境的数据库或者需要恢复数据的时候,我们经常会借助mysql提供的mysqlbinlog来对mysql生成的binlog文件进行解析,拿到执行的SQL,从而进行恢复,前提是mysql要打开binlog日志记录,否则就算用mysqlbinlog也无法恢复,除了mysqlbinlog,我们还有另外一款工具可以使用,就是binlog2sql。