mysql杂记

mysql 数据库添加用户以及添加权限

# 创建用户并设置密码
create user 'myname'@'localhost' identified by 'mypassword';

# 为某用户添加操作某数据库权限
grant all privileges on mysite_db.* to 'myname'@'localhost';

# 刷新用户权限
flush privileges;

mysql 通过select now()可以直接查看当前日期和时间

mysql 聚集(合)函数

  • AVG()
  • COUNT()
  • MAX()
  • MIN()
  • SUM()
  • DISTINCT() # 注意distinct函数是在5.0.3版本才加入的。

mysql分组 与过滤分组

  • GROUP BY

GROUP BY 字句必须出现在 WHERE 字句之后,ORDER BY 字句之前。

  • HAVING

WHERE 用来过滤行,而 HAVING 用于过滤分组。

mysql 分页查询利用索引优化提高查询效率

select * from product limit 866613, 20 # 需要花费37.4秒

只查询id时 select * from product limit 866613, 20 # 只花费 0.2秒

所以可以用select * from product where id >= (select id from product limit 866613, 1) limit 20 完成查询从最后一页开始的20条数据(不仅仅是id), # 花费时间也很短 ,仅需0.2秒.

mysql数据库连接池

进入到mysql, 然后输入

show variables like '%max_connections'

一般mysql默认的允许最大连接数为 151

在这里插入图片描述

Django默认每访问一次数据库都会创建一个新的数据库连接,执行完数据库操作后再关闭连接。这在高并发的场景下会导致连接数不断增多,最终出现“too many connections”错误。反复的连接关闭连接消耗数据库服务器性能, 这样会显著影响数据库服务器的性能资源,

数据库连接池可以负责分配,管理和释放数据库连接,允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个.用到的模块是djorm-ext-pool.

修改mysql事务隔离级别

事务的四种隔离级别: 读取已提交, 读取未提交, 可重复读, 串行. mysql默认是可重复读.

修改方式:

更改mysql的配置文件mysqld.cnf,里面的transaction-isolation=READ-COMMITTED

查询当前数据库有哪些事务

select * from information_schema.innodb_trx

杀掉指定的trx_mysql_thread_id

kill 318776;

MySQL判断Json 字段为空,如 []

JSON_EXTRACT(bind_rids, '$[0]')

posted @ 2021-11-21 19:57  Chongbo  阅读(33)  评论(0)    收藏  举报