0
假設我有一個像這樣創建MySQL表:如何以最高性能的方式查詢這個MySQL表?
CREATE TABLE `my_table` (
`my_id` char(32) NOT NULL,
`my_boolean_field` tinyint(1) DEFAULT NULL,
PRIMARY KEY (`my_id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
此表是非常大的。它有大約1000萬行。 my_boolean_field
唯一可能的值是1
,0
和null
。
現在分開,我有一個500個ID的列表。我們稱之爲my_list
。它們位於由換行符分隔的文本文件中。該文件的名稱是myfile.txt
。
我要回答以下問題:
- 多少在
my_table
行已經和ID是在my_list
和my_boolean_field爲空。 my_table
中有多少行的ID爲my_list
,my_boolean_field == 1。my_table
中有多少行的ID爲my_list
,my_boolean_field == 0。my_table
中的行數有多少,並且ID不在my_list
且my_boolean_field爲空。my_table
中的行數有多少,並且ID不在my_list
和my_boolean_field == 1中。my_table
中有多少行具有不在my_list
和my_boolean_field == 0中的ID。
什麼是最高性能的方式來獲得上述6個計數?
你能看到我的編輯原始問題? 500個ID的列表位於文本文件中。適合單個SQL語句太長。 –
@SaqibAli。 。 。你可以從500個ID創建一個查詢。或者,您可以使用'id'上的主鍵將它們加載到表中。 –