MySQL的坑

  1. select * from lb_task_type where type_desc like '%Task%' or '%Script%'

    以上语句mysql执行不报错,但结果不对,只选出‘%Task%’的结果集。正确写法是:where type_desc like '%Task%' or type_desc like '%Script%'。但上述语句在hive里会直接报错。

 

     2.Mac OS X上,启动mysql报错

   [ERROR] InnoDB: Unable to lock ./ibdata1 error: 35

   [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.

      ps -ef | grep mysqld查看确实有相关mysqld存在。强行杀掉后,过一会查看ps -ef | grep mysqld,又有相关mysqld存在。

  •  原因:Mac管理mysqld进程和linux完全不同。Mac使用launchd来管理需要自动启动的进程,需要在mysql安装目录下找到plist文件,使用launchctl卸载和加载plist文件,达到启动和停止mysqld的目的。
  • 停止:launchctl unload -w /usr/local/opt/mysql/homebrew.mxcl.mysql.plist
  • 启动:launchctl load -w /usr/local/opt/mysql/homebrew.mxcl.mysql.plist或 /usr/local/mysql/support-files/mysql.server start --skip-grant-tables

 

     3.lb_task_ext(记录少),anyloader_job_log(记录多),lb_task(记录多)3表作inner join,且连接条件都是task_id,则把lb_task_ext作为中间连接表,执行效率会大幅提高。

    4.有些表的数字列被定义为varchar类型,则需要order by cast(total_success_lines_writed as signed) desc转换为数字类型进行排序。

posted @ 2022-03-21 11:21  小小小小尼  阅读(111)  评论(0)    收藏  举报