mysql学习笔记(有待增补)

  1. mysql的连接:
    mysql -h host -u user -p   回车输入密码
  2. 展示数据库以及使用数据库
    show databases;
    use test
    grant all on database_name.* to 'your_nysql_name'@'your_client_host'    设置权限你能访问的数据库
    grant all on *.* to 'your_nysql_name'@'your_client_host'
    revoke all on database_name.* from 'your_nysql_name'@'your_client_host'
  3.  查看默认的存储引擎
    show variables like 'default_storage_engine';
  4. 查看数据库支持的存储引擎
    show engines\G
  5. 查看表的相关信息
    show table status like 'table_name'\G;
  6. 针对MYISAM表,可以手工或自动执行检查和修复操作
    check table xxx
    repair table xxx
    myisamchk 命令行工具进行检查和修复(这个有待研究)
  7. mysql有两个级别的锁等待,服务器级别和存储引擎级别
  8. 事务特性:原子性、一致性、隔离性、持久性隔离级别:未提交读、提交读、可重复读、可串行读
    • 未提交读(read uncommitted):一个事务还未提交,它所做的变更能被别的事务看到。事务可以读取未提交的数据,被称为脏读(dirty read),这种隔离级别在实际应用中一般很少使用;

    • 提交读(read committed):一个事务提交之后,它所做的变更才能被别的事务看到。大多数数据库的默认隔离级别是提交读(read committed),比如 Oracle;

    • 可重复读(repeatable read):一个事务在执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。在可重复读隔离级别下,未提交变更对其他事务也是不可见的。该级别保证了在同一个事务中,多次读取同样记录的结果是一致的。MySQL 的默认事务隔离级别是可重复读(repeatable read);

    • 可串行化(serializable):serializable 是最高的隔离级别。对同一行数据,读写都会进行加锁。当出现锁冲突时,后面访问的事务必须等前一个事务完成,才能继续执行。实际应用场景很少用到这种隔离级别,只有在非常需要确保数据一致性,而且可以接受没有并发的情况,才会使用这种隔离级别。

  9. 数据库的备份
    mysqldump -u root -p --all-databases > /tmp/all_databases.sql(备份所有的数据库)
  10. 数据库的逻辑恢复
    mysql -uroot -p123 databasename < /tmp/all_databases.sql(完全恢复)
  11. 定位分析SQL
    查看当前的线程和慢日志
    show processlist (查看正在执行的sql语句)或者通过表information_schema.processlist
    分析SQL的执行计划
    explain (type key table,type在range范围上为好 性能由差到好:ALL、index、range、ref、eq_ref、const)
    查看SQL的执行步骤跟时间
    set profiling=1;
    show profiles;
    show profile for query 2;
  12. 多版本并发控制(MVCC)
    行级锁的一个变种,典型的实现有乐观并发控制和悲观并发控制
  13. MySQL慢查询
    查看慢查询是否开启
    show variables like 'slow_query_log';
    开启慢查询
    set global slow_query_log='ON';
    查看慢查询规定时间
    show variables like 'long_query_time';
    设置慢查询的时间
    set global long_query_time=1;(更改配置需要重启数据库)
    设置慢查询日志文件保存地址
    set global slow_query_log_file='/var/lib/mysql/test.log';(地址自定义)
  14. ddd
  15. xxx
  16. 更多细节可参考
    http://www.imooc.com/wiki/mysqladvanced/serveroptimize.html
posted @ 2021-08-05 08:20  thomas张  阅读(28)  评论(0编辑  收藏  举报