diff --git a/README.md b/README.md index 73cd332..f3073c3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ### 一、简介 -SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析SQL中的where条件、聚合条件、多表Join关系 给出索引优化建议。**目前SQLAdvisor在美团点评广泛应用,包括美团支付、酒店旅游、外卖、团购等产品线,公司内部对SQLAdvisor的开发全面转到github上,开源和内部使用保持一致**。 +SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析SQL中的where条件、聚合条件、多表Join关系 给出索引优化建议。**目前SQLAdvisor在美团点评内部广泛应用,公司内部对SQLAdvisor的开发全面转到github上,开源和内部使用保持一致**。 **主要功能:输出SQL索引优化建议** diff --git a/doc/QUICK_START.md b/doc/QUICK_START.md index 7e0ead6..19aa38c 100644 --- a/doc/QUICK_START.md +++ b/doc/QUICK_START.md @@ -13,8 +13,11 @@ git clone https://github.com/Meituan-Dianping/SQLAdvisor.git ``` **注意** + 1. 跟据glib安装的路径,修改SQLAdvisor/sqladvisor/CMakeLists.txt中的两处include_directories针对glib设置的path。glib yum 安装默认不需要修改路径 -2. 编译sqladvisor时依赖perconaserverclient_r, 因此需要安装Percona-Server-shared-56。有可能需要配置软链接例如:ln -s libperconaserverclient_r.so.18 libperconaserverclient_r.so +2. 编译sqladvisor时依赖perconaserverclient_r, 因此需要安装Percona-Server-shared-56。有可能需要配置软链接例如:1. cd /usr/lib64/ 2. ln -s libperconaserverclient_r.so.18 libperconaserverclient_r.so +3. 有可能需要配置percona56 yum源: yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm + #### 1.3 编译依赖项sqlparser diff --git a/sqladvisor/main.cc b/sqladvisor/main.cc index 36882a7..b39b625 100644 --- a/sqladvisor/main.cc +++ b/sqladvisor/main.cc @@ -2,6 +2,7 @@ #include #include +#include #include "sql/mysqld.h" #include "sql/sql_class.h" #include "sql/sql_lex.h" @@ -1339,7 +1340,7 @@ int main(int argc, char **argv) { char *query = NULL; char *sqlparse_path = strdup("/usr/local/sqlparser"); int i = 0; - + char *lc = NULL; if (mysqld_init(sqlparse_path)) { sql_print_error("加载sqlparser模块有错 \n"); if(sqlparse_path) free(sqlparse_path); @@ -1347,6 +1348,13 @@ int main(int argc, char **argv) { } if(sqlparse_path) free(sqlparse_path); + lc = setlocale(LC_ALL, ""); + if (NULL == lc) { + sql_print_error("setlocale 有错 \n"); + if(sqlparse_path) free(sqlparse_path); + return -1; + } + ConnectionOptionsInit(&options); context = g_option_context_new("sqladvisor"); g_option_context_add_main_entries(context, entries, NULL);