优化建立索引有问题
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 45/100
Hướng nghiên cứu
Tái hiện đề xuất chỉ mục SQLAdvisor đã được báo cáo với ba bảng và truy vấn từ issue, sau đó lần theo điểm vào của chức năng đề xuất chỉ mục tạo ra câu lệnh ALTER cho bảng c. Bản sửa được hoàn tất khi đề xuất chỉ chứa user_id một lần và câu lệnh ALTER được tạo có thể thực thi mà không gặp lỗi cột trùng lặp.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
有a/b/c三张表
create table a (id int auto_increment,seller_id bigint,seller_name varchar(100) collate utf8_bin ,gmt_create varchar(30),primary key(id));
create table b (id int auto_increment,seller_name varchar(100),user_id varchar(50),user_name varchar(100),sales bigint,gmt_create varchar(30),primary key(id));
create table c (id int auto_increment,user_id varchar(50),order_id varchar(100),state bigint,gmt_create varchar(30),primary key(id));
使用sql
select a.seller_id,a.seller_name,b.user_name,c.state
from a,b,c
where a.seller_name=b.seller_name
and b.user_id=c.user_id
and c.user_id=17
and a.gmt_create BETWEEN DATE_ADD(NOW(), INTERVAL - 600 MINUTE)
AND DATE_ADD(NOW(), INTERVAL 600 MINUTE)
order by a.gmt_create
然后在建议c表时出现如下优化语句:
2017-07-19 11:15:53 4364 [Note] 第31步:开始验证 字段user_id是不是主键。表名:c
2017-07-19 11:15:53 4364 [Note] show index from c where Key_name = 'PRIMARY' and Column_name ='user_id' and Seq_in_index = 1
2017-07-19 11:15:53 4364 [Note] 第32步:字段user_id不是主键。表名:c
2017-07-19 11:15:53 4364 [Note] 第33步:开始验证 字段user_id是不是主键。表名:c
2017-07-19 11:15:53 4364 [Note] show index from c where Key_name = 'PRIMARY' and Column_name ='user_id' and Seq_in_index = 1
2017-07-19 11:15:53 4364 [Note] 第34步:字段user_id不是主键。表名:c
2017-07-19 11:15:53 4364 [Note] 第35步:开始验证表中是否已存在相关索引。表名:c, 字段名:user_id, 在索引中的位置:1
2017-07-19 11:15:53 4364 [Note] show index from c where Column_name ='user_id' and Seq_in_index =1
2017-07-19 11:15:53 4364 [Note] 第36步:开始验证 字段user_id是不是主键。表名:c
2017-07-19 11:15:53 4364 [Note] show index from c where Key_name = 'PRIMARY' and Column_name ='user_id' and Seq_in_index = 1
2017-07-19 11:15:53 4364 [Note] 第37步:字段user_id不是主键。表名:c
2017-07-19 11:15:53 4364 [Note] 第38步:开始验证表中是否已存在相关索引。表名:c, 字段名:user_id, 在索引中的位置:2
2017-07-19 11:15:53 4364 [Note] show index from c where Column_name ='user_id' and Seq_in_index =2
2017-07-19 11:15:53 4364 [Note] 第39步:开始输出表c索引优化建议:
2017-07-19 11:15:53 4364 [Note] Create_Index_SQL:alter table c add index idx_user_id_user_id(user_id,user_id)
这个建议有两个user_id,但是语句执行错误的
[Err] 1060 - Duplicate column name 'user_id' 。
麻烦看一下。
- Ngôn ngữ chính
- C
- Star
- 5.6k
- Fork
- 1.2k
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Chúng tôi chưa kiểm tra các tệp thiết lập môi trường của dự án này. Hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Meituan-Dianping/SQLAdvisor
-
修复了一些安装问题和代码bugĐang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
Meituan-Dianping/SQLAdvisor#100 ·
-
有纯洁的docker 镜像么?Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 20/100
-
连接访问不到Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 25/100
-
制作了一个docker启动的web版本,嫌编译麻烦的可以直接用Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 20/100
Meituan-Dianping/SQLAdvisor#97 · 1 reaction ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
Tất cả issue của Meituan-Dianping/SQLAdvisor
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
johnsonjh/emu2-cpm86#68 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Zenmap CrashĐang mởZenmap
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
fastfetch-cli/fastfetch#2619 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Template: Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
betaflight/betaflight#15759 ·
Maintainer thường phản hồi trong vòng 1 ngày