я делаю выборку из таблицы с 50 миллионами строк с помощью 'select where in' в индексированном поле (varchar (255));sql похож на это
select Fid, Fnumber from t_word where Fnumber in (a,b,c)
, где на самом деле (a, b, c) является списком из 500 элементов
в navicat, sql возвращается в течение 0,12 с
однако с pymysql 0.9.3
l = (a,b,c)
sql = 'select Fid, Fnumber from t_word where Fnumber in %s'
cursor.execute(sql, [l])
result = cursor.fetchall()
заняло 60 секунд. я думаю, что pymysql не использует индекс
я отформатировал мой sql неправильно?
выберите pymysql с переменным числом параметров я следовал здесь коду
моя версия mysql 5.7.18-cdb20170530-log
где поле индексируется ИСПОЛЬЗУЯ BTREE