mysql 笔记

  • mysql配置相关

    • 数据文件夹通过[mysqld]配置模块儿下的datadir=/var/lib/mysql配置项进行匹配【修改后移动数据之后,需要使用chown mysql:mysql $datadir修改文件所有者】
    • 插入数据库时如果数据过大需要设置 max_allowed_packet = 64M不然会插入失败
  • mysql-python

    • 使用mysqldb操作数据库时,cursor除了有最常用的list类型之外还有一种DictCursor这种cursor在遍历时时key value的形式,还有一种是SSCursor,这种会将数据存储在服务器端,遍历时可以使用fetchone之类的语句进行遍历,在数据量过大时建议使用该游标,使用方法就是cursor = conn.cursor(cursorclass = MySQLdb.cursors.SSCursor)
    • 在操作大量数据时建议使用executemany而不是最常用的execute,区别在于前者的参数为[list],而后者的参数为list
  • mysqldump

    • mysqldump在使用时会有不同的例如指定 —no-create-info这样导出的sql文件会没有create table信息
  • mysql table crash操作方法

    • 检查数据库中是否有crash表的方法是使用show table status where engine is null,这样列出来的表名就是crash的表
    • 使用check table tablename来进行表的状态的检查(如果有上步确认了数据损坏这步可以跳过)
    • 运行repair table tablename进行表数据的重建,运行时间与表大小相关【repair table相当于在原有表的基础上新建一个并导入数据,因此进行此项操作的用户需要拥有select/insert权限】文档