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]')

浙公网安备 33010602011771号