Hi Sergei, I am working on writing proposal for this project currently. Currently MariaDB lets user create index upto 1000 bytes. should we use new approach for prefixes less than <1000 chars also(but >63 or some other threshold) to improve performance? Should I first work on MyISAM or Aria storage engine? I am thinking of starting with one and then porting to other. From Smit Hinsu On Mon, Mar 17, 2014 at 8:33 PM, Sergei Golubchik <serg@mariadb.org> wrote:
Hi, Smit!
On Mar 17, smit hinsu wrote:
Hi Sergei and Roberto,
My name is Smit Hinsu and I am final year undergrad student. I have good knowledge about database internals and good experience with C++.
I find feature of creating index on BLOB quickly using MD-5 interesting. I have understood basic requirements for this feature. I have following questions in my mind currently.
I think, HASH index is not supported in MySQL's version of MyISAM storage engine. Has MariaDB removed this restriction?
No, it is not supported in MariaDB either. I mean, neither in MySQL nor in MariaDB you can write
CREATE TABLE (.... INDEX (...) USING HASH...) ENGINE=MyISAM
This doesn't work.
But both in MySQL and in MariaDB, MyISAM actually supports these indexes! They are not available to the SQL user, but they are there in the code. This task, precisely, is to provide SQL access to this feature.
We should support index for BLOB for BTREE index also in which we store only hash value of the value in BTREE. Is this possible?
That's what MyISAM does, yes.
Can you suggest me some startup task related to index or storage engine which can make me familiar with the related parts? I have started to look at code.
Look in storage/myisam for "MI_UNIQUEDEF" - see where this structure is used and how.
Regards, Sergei