Mysql count

发布于:2019-3-3 11:45 作者:losetowin 浏览:619 分类:技术

Mysql Count(*)

Count(*)的实现方式

MyISAM

  • 把一张表的总行数存储在磁盘上,这样count(*)时直接返回总行数,效果很高
  • 但如果增加where条件,就不会这么快了,因为无法直接读取磁盘的总行数

InnoDb

  • count(*)时,需要把数据一行行的从引擎中读出来,然后累计计数。
  • 为什么不可以用M...

阅读全文>>

标签: mysql count

0

Mysql锁-表级别锁

发布于:2019-2-18 22:51 作者:losetowin 浏览:751 分类:技术

表级别锁

表级别锁包含两种: 表锁和元数据锁


表锁

  • 命令:

    • 客户端和服务端断开时,服务端也会主动释放锁

    • lock table 除了限制其他线程的读写外,本身线程接下来的操作对象读写也受限制

    • 例子:

    • 线程A 执行 lock table t1 read, t2 write 时,线程B无法对t1写...

阅读全文>>

标签: mysql

0

Mysql锁-行锁

发布于:2019-2-18 22:50 作者:losetowin 浏览:703 分类:技术

行锁

在引擎层由各个引擎自己实现

MyISAM不支持行锁,InnoDB支持行锁

  • 不支持行锁,意味着并发控制只能使用表锁,即同一时刻,同一张表只能有一个线程在更新,其余的操作需要等待。会严重影响到业务的并发度

概念: 针对数据表中的行记录的锁

两阶段锁协议

  • 在InnoDB事务中,行锁是在需要的时候才加上。 但并不是不需要的时候就释放,而是在...

阅读全文>>

标签: mysql

0

Mysql锁-全局锁

发布于:2019-2-16 16:14 作者:losetowin 浏览:696 分类:技术

mysql锁

Mysql包含 全局锁, 表级锁, 行级锁三种

全局锁

介绍

全局锁就是对整个数据库实例加锁。

使用 命令 Flush tables with read lock (FTWRL)来对数据库实例加全局锁。

加全局锁之后会怎样?
  • 使用FTWRL命令后,下列操作将被堵塞:
    • 数据更新语句(数据的增删改...

阅读全文>>

标签: mysql

0

ERROR 1820 (HY000): You must reset your password using ALTER USER statement

发布于:2016-3-17 20:34 作者:losetowin 浏览:3012 分类:mac
问题描述:

mac osx安装mysql后,启动使用命令行登录之后,执行sql语句,提示错误:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement

如下图:

解决:
需要重新设置密码,具体步骤如下: ...

阅读全文>>

标签: mysql mac

0

Mac OSX 下安装mysql服务端

发布于:2016-3-17 20:15 作者:losetowin 浏览:3387 分类:mac
使用最简单的安装方式:
1、下载安装包,地址:http://dev.mysql.com/downloads/mysql/
2、选择   Mac OS X 10.10 (x86, 64-bit), DMG Archive   如下图:

PS:根据自己的系统版本,自助选择。
3、后面就是普通的安装了,双击dmg文件安装就可以了。
4、注意安装最后的时...

阅读全文>>

标签: mysql mac

0

Mysql删除数据后,磁盘空间未释放

发布于:2016-3-13 16:44 作者:losetowin 浏览:5901 分类:技术
起因:
    公司的服务器上添加了硬盘监控,收到报警后,确认是mysql的文件占用空间比较大。于是,确认是哪个表占空间比较大后,删除了部分数据(注:数据库数据为线下分析使用,非线上数据,可以删除),但服务器硬盘空间并没有释放掉,报警仍旧存在。

原因及解决办法:
     使用delete删除的时候,mysql并没有把数据文件删除,而是将数据文...

阅读全文>>

SQL随机从数据库中取出数据

发布于:2014-9-8 19:23 作者:losetowin 浏览:10522 分类:技术
这里把不同数据库实现的语句粘在这里,以供需要的人来参考. 

Select a random row with MySQL: 

SELECT column FROM table
ORDER BY RAND()
LIMIT 1


Select a random row with PostgreSQL:


SELECT column FROM table
ORDER BY ...

阅读全文>>

标签: mysql sql random rand

0

MySQL:Got a packet bigger than 'max_allowed_packet' bytes解决办法

发布于:2014-5-4 16:47 作者:losetowin 浏览:11220 分类:技术

问题描述:

    使用insert语句插入的时候,报MySQL错误;Got a packet bigger than 'max_allowed_packet' bytes

原因:

    说白了就是因为insert语句太长,导致超出了服务器所能接收的范围。

    mysql默认的max_allowed_packet是...

阅读全文>>

ERROR 1366 (HY000): Incorrect string value错误解决办法

发布于:2013-12-29 15:06 作者:losetowin 浏览:42730 分类:Java

原因主要是:字符集的问题

    在一个用Struts + Spring+ Hibernate + Mysql架构的的项目里,通过前台表单向后台MySql数据库添加

数据,当遇到提交中文信息的时候,问题总是比较多,我见过的出错的情况有两种:

     1)错误情况1:

  &n...

阅读全文>>

标签: mysql jdbc

116